PITR and warm standby setup questions

Started by Mason Haleover 18 years ago23 messagesgeneral
Jump to latest
#1Mason Hale
masonhale@gmail.com

I am setting up a warm standby configuration as described here:

http://www.postgresql.org/docs/8.2/static/warm-standby.html

Using PostgreSql 8.2.5

My production server is archiving 16MB wal segment files at a rate of 1
every 5 to 10 seconds
My standby server is processing the wal segment files at a rate of 1 every
10 to 40 seconds

At this rate the standby will never keep up with the production server.

The production server has a 10 disk RAID 1+0 configuration and 32GB RAM
The standby server has a 4 disk RAID 1+0 configuration and 16GB RAM, with an
extra disk to hold the wal archive files (separate from the RAID)
otherwise they are identically configured

First question: Can anyone suggest a configuration change that might speed
up processing of the wal segment files on my standby server?

Second question: I have the standby server running in perpetual recovery
mode. After the wal segment file is copied by the restore_command script, is
it safe delete it from my archive? I assume so, but I haven't seen deletion
addressed in any of the documentation or examples I've managed to find
online.

Thanks in advance,
Mason

#2Merlin Moncure
mmoncure@gmail.com
In reply to: Mason Hale (#1)
Re: PITR and warm standby setup questions

On Nov 12, 2007 6:59 PM, Mason Hale <masonhale@gmail.com> wrote:

I am setting up a warm standby configuration as described here:

http://www.postgresql.org/docs/8.2/static/warm-standby.html

Using PostgreSql 8.2.5

My production server is archiving 16MB wal segment files at a rate of 1
every 5 to 10 seconds
My standby server is processing the wal segment files at a rate of 1 every
10 to 40 seconds

At this rate the standby will never keep up with the production server.

The production server has a 10 disk RAID 1+0 configuration and 32GB RAM
The standby server has a 4 disk RAID 1+0 configuration and 16GB RAM, with an
extra disk to hold the wal archive files (separate from the RAID)
otherwise they are identically configured

your i/o must be really random to be seeing numbers that lousy (10
seconds to replay a file is 1.6 megabytes/sec), or there is some other
unexplained problem with your server. is your raid controller
properly caching wites? have you benchmarked the volume with bonnie++
or similar tool (pay close attention to seeks).

merlin

#3Mason Hale
masonhale@gmail.com
In reply to: Merlin Moncure (#2)
Re: PITR and warm standby setup questions

your i/o must be really random to be seeing numbers that lousy (10
seconds to replay a file is 1.6 megabytes/sec), or there is some other
unexplained problem with your server. is your raid controller
properly caching wites? have you benchmarked the volume with bonnie++
or similar tool (pay close attention to seeks).

Here's the bonnie++ output (two runs):

Version  1.03       ------Sequential Output------ --Sequential Input-
--Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block--
--Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec
%CP
dev-db-2        32G 43174  99 87421  24 45614  12 48302  97 164574  23 205.3
0
                    ------Sequential Create------ --------Random
Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read---
-Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec
%CP
                 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++
+++

Having never used bonnie++ before, I don't have a baseline to compare this
against, but that looks like 87MB/s writes and 164MB/s reads to me. Am I
reading this correctly? It looks pretty good to me.

Here is some output from iostat

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
sdb 1.00 0.00 55.72 0 112
sdc 1.00 0.00 63.68 0 128
sdd 101.49 1699.50 0.00 3416 0

avg-cpu: %user %nice %system %iowait %steal %idle
0.06 0.00 0.06 12.37 0.00 87.51

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 2.50 0.00 24.00 0 48
sdb 0.00 0.00 0.00 0 0
sdc 42.50 0.00 8288.00 0 16576
sdd 101.50 1688.00 0.00 3376 0

avg-cpu: %user %nice %system %iowait %steal %idle
0.12 0.00 0.06 12.35 0.00 87.46

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
sdb 0.00 0.00 0.00 0 0
sdc 0.00 0.00 0.00 0 0
sdd 112.44 1787.06 0.00 3592 0

avg-cpu: %user %nice %system %iowait %steal %idle
0.12 0.00 0.06 12.36 0.00 87.45

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
sdb 4.50 0.00 48.00 0 96
sdc 0.50 0.00 4.00 0 8
sdd 97.50 1752.00 0.00 3504 0

In the above: sdb holds the pg_xlog directory, sdc holds the wal archive,
and sdd is the 4 disk RAID 1+0 where the pgdata directory is stored. All
these disks are ext3 with noatime,data=writeback mount options. The RAID
controller is an Adaptec 3805 with 128MB battery backed cache (only option
offered by our hosting provider for this server class).

Does any of this shed any light on how to boost my restore performance?

thanks,
Mason

#4Greg Smith
gsmith@gregsmith.com
In reply to: Mason Hale (#1)
Re: PITR and warm standby setup questions

On Mon, 12 Nov 2007, Mason Hale wrote:

After the wal segment file is copied by the restore_command script, is
it safe to delete it from my archive?

While I believe you can toss them immediately, you should considering
keeping those around for a bit regardless as an additional layer of
disaster recovery resources. I try to avoid deleting them until a new
base backup is made, because if you have the last backup and all the
archived segments it gives you another potential way to rebuild the
database in case of a large disaster damages both the primary and the
secondary. You can never have too many ways to try and recover from such
a situation.

--
* Greg Smith gsmith@gregsmith.com http://www.gregsmith.com Baltimore, MD

#5Merlin Moncure
mmoncure@gmail.com
In reply to: Mason Hale (#3)
Re: PITR and warm standby setup questions

On Nov 12, 2007 11:03 PM, Mason Hale <masonhale@gmail.com> wrote:

your i/o must be really random to be seeing numbers that lousy (10
seconds to replay a file is 1.6 megabytes/sec), or there is some other
unexplained problem with your server. is your raid controller
properly caching wites? have you benchmarked the volume with bonnie++
or similar tool (pay close attention to seeks).

Here's the bonnie++ output (two runs):
Version 1.03 ------Sequential Output------ --Sequential Input-
--Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block--
--Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec
%CP
dev-db-2 32G 43174 99 87421 24 45614 12 48302 97 164574 23 205.3

your seeks are low, especially if these are 15k drives. The
sequential numbers are ok but not very important in the scheme of
things. Interestingly, your 'sdd' device is not doing any writing in
the iostat samples you sent...is that a typical sample? how long are
your iostat intervals? your iowait numbers are also remarkably
stable. did you iostat the device when doing bonnie? (an iostat
during wal replay is much more interesting)

here are some random suggestions:

* play with partial wal writes setting and see if that helps
* double check raid controller is configured for writeback (it should,
with a bbu)
* experiment with xfs on data volume which may help compensate for
lousy seeking hardware
* try and describe with a little more detail your workload on the primary

merlin

#6Robert Treat
xzilla@users.sourceforge.net
In reply to: Greg Smith (#4)
Re: PITR and warm standby setup questions

On Tuesday 13 November 2007 00:07, Greg Smith wrote:

On Mon, 12 Nov 2007, Mason Hale wrote:

After the wal segment file is copied by the restore_command script, is
it safe to delete it from my archive?

While I believe you can toss them immediately, you should considering
keeping those around for a bit regardless as an additional layer of
disaster recovery resources. I try to avoid deleting them until a new
base backup is made, because if you have the last backup and all the
archived segments it gives you another potential way to rebuild the
database in case of a large disaster damages both the primary and the
secondary. You can never have too many ways to try and recover from such
a situation.

Actually I'd more strongly recommend you keep around the last 2 segments you
have processed. Coming out of replay mode (for example, during a failover
scenario) the server often has a desire to reread the last file you
processed, and if you dont have it complains.

--
Robert Treat
Build A Brighter LAMP :: Linux Apache {middleware} PostgreSQL

#7Jim Nasby
Jim.Nasby@BlueTreble.com
In reply to: Greg Smith (#4)
Re: PITR and warm standby setup questions

On Nov 12, 2007, at 11:07 PM, Greg Smith wrote:

On Mon, 12 Nov 2007, Mason Hale wrote:

After the wal segment file is copied by the restore_command
script, is it safe to delete it from my archive?

While I believe you can toss them immediately, you should
considering keeping those around for a bit regardless as an
additional layer of disaster recovery resources. I try to avoid
deleting them until a new base backup is made, because if you have
the last backup and all the archived segments it gives you another
potential way to rebuild the database in case of a large disaster
damages both the primary and the secondary. You can never have too
many ways to try and recover from such a situation.

Plus, the new resumable recovery probably won't be happy if you're
too aggressive about nuking WAL logs from the archive.
--
Decibel!, aka Jim C. Nasby, Database Architect decibel@decibel.org
Give your computer some brain candy! www.distributed.net Team #1828

Attachments:

smime.p7sapplication/pkcs7-signature; name=smime.p7sDownload
#8Simon Riggs
simon@2ndQuadrant.com
In reply to: Greg Smith (#4)
Re: PITR and warm standby setup questions

On Tue, 2007-11-13 at 00:07 -0500, Greg Smith wrote:

On Mon, 12 Nov 2007, Mason Hale wrote:

After the wal segment file is copied by the restore_command script, is
it safe to delete it from my archive?

While I believe you can toss them immediately,

This is almost never possible. The last WAL file that must be kept
should be sufficient to allow recovery to restart from the last
restartpoint. So a variable number of WAL files needs to be kept, not 1,
not 2 and certainly never 0.

pg_standby with 8.2 provides a -k option to allow keeping last N files,
whereas 8.3 passes the %r parameter to show the filename of the last
file that must be kept.

you should considering
keeping those around for a bit regardless as an additional layer of
disaster recovery resources. I try to avoid deleting them until a new
base backup is made, because if you have the last backup and all the
archived segments it gives you another potential way to rebuild the
database in case of a large disaster damages both the primary and the
secondary. You can never have too many ways to try and recover from such
a situation.

Agreed

--
Simon Riggs
2ndQuadrant http://www.2ndQuadrant.com

#9Dhaval Shah
dhaval.shah.m@gmail.com
In reply to: Simon Riggs (#8)
Re: PITR and warm standby setup questions

I am on 8.2 production and it will be difficult to upgrade to 8.3. Is
it possible to backport the "%r" fix from 8.3 to 8.2?

Regards
Dhaval

On Nov 13, 2007 11:26 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On Tue, 2007-11-13 at 00:07 -0500, Greg Smith wrote:

On Mon, 12 Nov 2007, Mason Hale wrote:

After the wal segment file is copied by the restore_command script, is
it safe to delete it from my archive?

While I believe you can toss them immediately,

This is almost never possible. The last WAL file that must be kept
should be sufficient to allow recovery to restart from the last
restartpoint. So a variable number of WAL files needs to be kept, not 1,
not 2 and certainly never 0.

pg_standby with 8.2 provides a -k option to allow keeping last N files,
whereas 8.3 passes the %r parameter to show the filename of the last
file that must be kept.

you should considering
keeping those around for a bit regardless as an additional layer of
disaster recovery resources. I try to avoid deleting them until a new
base backup is made, because if you have the last backup and all the
archived segments it gives you another potential way to rebuild the
database in case of a large disaster damages both the primary and the
secondary. You can never have too many ways to try and recover from such
a situation.

Agreed

--
Simon Riggs
2ndQuadrant http://www.2ndQuadrant.com

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match

--
Dhaval Shah

#10Bruce Momjian
bruce@momjian.us
In reply to: Dhaval Shah (#9)
Re: PITR and warm standby setup questions

Dhaval Shah wrote:

I am on 8.2 production and it will be difficult to upgrade to 8.3. Is
it possible to backport the "%r" fix from 8.3 to 8.2?

You need to troll through the CVS archives to find that patch and try to
apply it to 8.2. This feature will not be backpatched because we don't
backpatch features to previous branches.

---------------------------------------------------------------------------

Regards
Dhaval

On Nov 13, 2007 11:26 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On Tue, 2007-11-13 at 00:07 -0500, Greg Smith wrote:

On Mon, 12 Nov 2007, Mason Hale wrote:

After the wal segment file is copied by the restore_command script, is
it safe to delete it from my archive?

While I believe you can toss them immediately,

This is almost never possible. The last WAL file that must be kept
should be sufficient to allow recovery to restart from the last
restartpoint. So a variable number of WAL files needs to be kept, not 1,
not 2 and certainly never 0.

pg_standby with 8.2 provides a -k option to allow keeping last N files,
whereas 8.3 passes the %r parameter to show the filename of the last
file that must be kept.

you should considering
keeping those around for a bit regardless as an additional layer of
disaster recovery resources. I try to avoid deleting them until a new
base backup is made, because if you have the last backup and all the
archived segments it gives you another potential way to rebuild the
database in case of a large disaster damages both the primary and the
secondary. You can never have too many ways to try and recover from such
a situation.

Agreed

--
Simon Riggs
2ndQuadrant http://www.2ndQuadrant.com

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match

--
Dhaval Shah

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://postgres.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

#11madhtr
madhtr@schif.org
In reply to: Mason Hale (#1)
stripping HTML, SQL injections ...

Quick question, are there any native functions in PostGreSQL 8.1.4 that will
strip HTML tags, escape chars, etc?

thanx:)

#12Scott Marlowe
scott.marlowe@gmail.com
In reply to: madhtr (#11)
Re: stripping HTML, SQL injections ...

On Nov 14, 2007 2:40 PM, madhtr <madhtr@schif.org> wrote:

Quick question, are there any native functions in PostGreSQL 8.1.4 that will
strip HTML tags, escape chars, etc?

I can't think of a lot of native functions, but it's sure easy enough
to roll your own with things like the regex functionality built in.

#13A.M.
agentm@themactionfaction.com
In reply to: Scott Marlowe (#12)
Re: stripping HTML, SQL injections ...

On Nov 14, 2007, at 4:23 PM, Scott Marlowe wrote:

On Nov 14, 2007 2:40 PM, madhtr <madhtr@schif.org> wrote:

Quick question, are there any native functions in PostGreSQL 8.1.4
that will
strip HTML tags, escape chars, etc?

I can't think of a lot of native functions, but it's sure easy enough
to roll your own with things like the regex functionality built in.

Please don't do that- there are corner cases where a naive regex can
fail, leaving the programmer thinking he is covered when he is not.
The variety of web languages include filtering modules
(HTML::Scrubber)- in the case of Perl or PHP, it can even be run
server-side.

Furthermore, one shouldn't use an API which allows for SQL injections.

Cheers,
M

#14Scott Marlowe
scott.marlowe@gmail.com
In reply to: A.M. (#13)
Re: stripping HTML, SQL injections ...

On Nov 14, 2007 4:51 PM, A.M. <agentm@themactionfaction.com> wrote:

On Nov 14, 2007, at 4:23 PM, Scott Marlowe wrote:

On Nov 14, 2007 2:40 PM, madhtr <madhtr@schif.org> wrote:

Quick question, are there any native functions in PostGreSQL 8.1.4
that will
strip HTML tags, escape chars, etc?

I can't think of a lot of native functions, but it's sure easy enough
to roll your own with things like the regex functionality built in.

Please don't do that- there are corner cases where a naive regex can
fail, leaving the programmer thinking he is covered when he is not.
The variety of web languages include filtering modules
(HTML::Scrubber)- in the case of Perl or PHP, it can even be run
server-side.

And given that pl/PHP can run that inside the database, there's a
reason you can't do it there?

Furthermore, one shouldn't use an API which allows for SQL injections.

Oh heck, I hadn't even noticed he was asking about escaping things. I
guess it really matters what he means by escaping them. If he's
talking url encoding decoding, that's something you could do safely in
the db (again, with something like pl/PHP or pl/perl) but SQL escaping
should be done before the db ever sees the data.

#15Dhaval Shah
dhaval.shah.m@gmail.com
In reply to: Bruce Momjian (#10)
Re: PITR and warm standby setup questions

No problem.

One more question, is there a way to find out, without going through a
test install, and from release notes etc. for 8.3 if the database
needs migration from 8.2 to 8.3 or not.

Regards
Dhaval

On Nov 14, 2007 10:44 AM, Bruce Momjian <bruce@momjian.us> wrote:

Dhaval Shah wrote:

I am on 8.2 production and it will be difficult to upgrade to 8.3. Is
it possible to backport the "%r" fix from 8.3 to 8.2?

You need to troll through the CVS archives to find that patch and try to
apply it to 8.2. This feature will not be backpatched because we don't
backpatch features to previous branches.

---------------------------------------------------------------------------

Regards
Dhaval

On Nov 13, 2007 11:26 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On Tue, 2007-11-13 at 00:07 -0500, Greg Smith wrote:

On Mon, 12 Nov 2007, Mason Hale wrote:

After the wal segment file is copied by the restore_command script, is
it safe to delete it from my archive?

While I believe you can toss them immediately,

This is almost never possible. The last WAL file that must be kept
should be sufficient to allow recovery to restart from the last
restartpoint. So a variable number of WAL files needs to be kept, not 1,
not 2 and certainly never 0.

pg_standby with 8.2 provides a -k option to allow keeping last N files,
whereas 8.3 passes the %r parameter to show the filename of the last
file that must be kept.

you should considering
keeping those around for a bit regardless as an additional layer of
disaster recovery resources. I try to avoid deleting them until a new
base backup is made, because if you have the last backup and all the
archived segments it gives you another potential way to rebuild the
database in case of a large disaster damages both the primary and the
secondary. You can never have too many ways to try and recover from such
a situation.

Agreed

--
Simon Riggs
2ndQuadrant http://www.2ndQuadrant.com

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match

--
Dhaval Shah

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://postgres.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

--
Dhaval Shah

#16Bruce Momjian
bruce@momjian.us
In reply to: Dhaval Shah (#15)
Re: PITR and warm standby setup questions

Dhaval Shah wrote:

No problem.

One more question, is there a way to find out, without going through a
test install, and from release notes etc. for 8.3 if the database
needs migration from 8.2 to 8.3 or not.

What is migration? Application changes? The release notes pretty much
tell you everything you need.

---------------------------------------------------------------------------

Regards
Dhaval

On Nov 14, 2007 10:44 AM, Bruce Momjian <bruce@momjian.us> wrote:

Dhaval Shah wrote:

I am on 8.2 production and it will be difficult to upgrade to 8.3. Is
it possible to backport the "%r" fix from 8.3 to 8.2?

You need to troll through the CVS archives to find that patch and try to
apply it to 8.2. This feature will not be backpatched because we don't
backpatch features to previous branches.

---------------------------------------------------------------------------

Regards
Dhaval

On Nov 13, 2007 11:26 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On Tue, 2007-11-13 at 00:07 -0500, Greg Smith wrote:

On Mon, 12 Nov 2007, Mason Hale wrote:

After the wal segment file is copied by the restore_command script, is
it safe to delete it from my archive?

While I believe you can toss them immediately,

This is almost never possible. The last WAL file that must be kept
should be sufficient to allow recovery to restart from the last
restartpoint. So a variable number of WAL files needs to be kept, not 1,
not 2 and certainly never 0.

pg_standby with 8.2 provides a -k option to allow keeping last N files,
whereas 8.3 passes the %r parameter to show the filename of the last
file that must be kept.

you should considering
keeping those around for a bit regardless as an additional layer of
disaster recovery resources. I try to avoid deleting them until a new
base backup is made, because if you have the last backup and all the
archived segments it gives you another potential way to rebuild the
database in case of a large disaster damages both the primary and the
secondary. You can never have too many ways to try and recover from such
a situation.

Agreed

--
Simon Riggs
2ndQuadrant http://www.2ndQuadrant.com

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match

--
Dhaval Shah

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://postgres.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

--
Dhaval Shah

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://postgres.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

#17Scott Marlowe
scott.marlowe@gmail.com
In reply to: Dhaval Shah (#15)
Re: PITR and warm standby setup questions

On Nov 14, 2007 5:19 PM, Dhaval Shah <dhaval.shah.m@gmail.com> wrote:

No problem.

One more question, is there a way to find out, without going through a
test install, and from release notes etc. for 8.3 if the database
needs migration from 8.2 to 8.3 or not.

Well, you HAVE to do a dump from one to the other, because major
versions can't read each other's data stores.

Whether or not the upgrade will break your app is a question only you
can answer though.

#18Joshua D. Drake
jd@commandprompt.com
In reply to: Bruce Momjian (#16)
Re: PITR and warm standby setup questions

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Wed, 14 Nov 2007 18:35:00 -0500 (EST)
Bruce Momjian <bruce@momjian.us> wrote:

Dhaval Shah wrote:

No problem.

One more question, is there a way to find out, without going
through a test install, and from release notes etc. for 8.3 if the
database needs migration from 8.2 to 8.3 or not.

What is migration? Application changes? The release notes pretty
much tell you everything you need.

http://www.postgresql.org/docs/8.3/static/release-8-3.html

Sincerely,

Joshua D. Drake

- --

=== The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 24x7/Emergency: +1.800.492.2240
PostgreSQL solutions since 1997 http://www.commandprompt.com/
UNIQUE NOT NULL
Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate
PostgreSQL Replication: http://www.commandprompt.com/products/

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFHO4kxATb/zqfZUUQRAtRaAJ4t99bQ9e+iPqJ4WbYwY0gtVDeSGgCgmPtO
sW/YuUUicDUTDZy+Hzn4ug8=
=t0dY
-----END PGP SIGNATURE-----

#19Martin Gainty
mgainty@hotmail.com
In reply to: Mason Hale (#1)
Re: stripping HTML, SQL injections ...

this is a very simple html tag strip routine
I dont understand what security you had in mind ..

so I take it you're not a fan of dojo or GWT?

M--
----- Original Message -----
From: "Ian Barwick" <barwick@gmail.com>
Cc: "Scott Marlowe" <scott.marlowe@gmail.com>; "pgsql-general"
<pgsql-general@postgresql.org>
Sent: Wednesday, November 14, 2007 7:21 PM
Subject: Re: [GENERAL] stripping HTML, SQL injections ...

Martin,

2000/11/15, Martin Gainty <mgainty@hotmail.com>:

Scott-

In JavaScript

http://www.java2s.com/Tutorial/JavaScript/0520__Regular-Expressions/StripHTM

Show quoted text

L.htm

I don't remember what the consensus was back in 2000 (your mail's
timestamp), but in 2007 it's Not A Good Idea to rely on client-side
validation for security-related operations ;).

Regards

Ian Barwick

--
http://sql-info.de/index.html

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

#20Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Martin Gainty (#19)
Re: stripping HTML, SQL injections ...

Martin Gainty escribi�:

this is a very simple html tag strip routine
I dont understand what security you had in mind ..

so I take it you're not a fan of dojo or GWT?

Let's say the user disables javascript on the browser?

--
Alvaro Herrera http://www.advogato.org/person/alvherre
"Aprende a avergonzarte m�s ante ti que ante los dem�s" (Dem�crito)

#21Ottavio Campana
ottavio@campana.vi.it
In reply to: Alvaro Herrera (#20)
#22Peter Eisentraut
peter_e@gmx.net
In reply to: madhtr (#11)
#23Kevin Hunter
hunteke@earlham.edu
In reply to: A.M. (#13)