configuration oracle 10g archive log mode
[
2010/01/15 15:18 | by askwan ]
2010/01/15 15:18 | by askwan ]
VERSION:
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
Check current database archive log mode
shutdown database clear
startup database to mount status:
open database archive log mode :
stop archive log mode :
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
Check current database archive log mode
SQL> select dbid,name,log_mode from v$database;
DBID NAME LOG_MODE
---------- --------- ------------
2406511032 CAPITALV NOARCHIVELOG
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 32
Current log sequence 34
DBID NAME LOG_MODE
---------- --------- ------------
2406511032 CAPITALV NOARCHIVELOG
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 32
Current log sequence 34
shutdown database clear
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
Database closed.
Database dismounted.
ORACLE instance shut down.
startup database to mount status:
SQL> startup mount;
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 2083368 bytes
Variable Size 142607832 bytes
Database Buffers 134217728 bytes
Redo Buffers 6303744 bytes
Database mounted.
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 2083368 bytes
Variable Size 142607832 bytes
Database Buffers 134217728 bytes
Redo Buffers 6303744 bytes
Database mounted.
open database archive log mode :
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 32
Next log sequence to archive 34
Current log sequence 34
Database altered.
SQL> alter database open;
Database altered.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 32
Next log sequence to archive 34
Current log sequence 34
stop archive log mode :
SQL> shutdown immediate ;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 2083368 bytes
Variable Size 142607832 bytes
Database Buffers 134217728 bytes
Redo Buffers 6303744 bytes
Database mounted.
SQL> alter database noarchivelog;
Database altered.
SQL> alter database open;
Database altered.
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 32
Current log sequence 34
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 2083368 bytes
Variable Size 142607832 bytes
Database Buffers 134217728 bytes
Redo Buffers 6303744 bytes
Database mounted.
SQL> alter database noarchivelog;
Database altered.
SQL> alter database open;
Database altered.
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 32
Current log sequence 34
oracle 10g em and isqlplus unrecognizable chinese characters on debian lenny
[
2009/12/28 12:26 | by askwan ]
2009/12/28 12:26 | by askwan ]
OS:Debian Lenny 503 amd64
Oracle 10g R2
vim font.properties
in the last line :
change
to
simhei.ttf copied from windows (C:\WINDOWS\Fonts )
-------EOF--------
Oracle 10g R2
emctl stop dbconsole
isqlplusctl stop
isqlplusctl stop
Quotation
cd $ORACLE_HOME/jdk/jre/lib
mv font.properties font.properties_bak20091229
cp -frp font.properties.zh_CN.Redhat font.properties
mv font.properties font.properties_bak20091229
cp -frp font.properties.zh_CN.Redhat font.properties
vim font.properties
in the last line :
change
Quotation
filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/zh_CN/TrueType/zysong.ttf
to
Quotation
filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/zh_CN/TrueType/simhei.ttf
simhei.ttf copied from windows (C:\WINDOWS\Fonts )
Quotation
cp -f font.properties $ORACLE_HOME/jre/1.4.2/lib
cp -f font.properties $ORACLE_HOME/javavm/lib/ojvmfonts
cp -f font.properties $ORACLE_HOME/javavm/lib/ojvmfonts
Quotation
rm -fr $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/*.gif
rm -fr $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/isqlplus/isqlplus/cabo/images/cache/*.gif
rm -fr $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/isqlplus/isqlplus/cabo/images/cache/*.gif
emctl start dbconsole
isqlplusctl start
isqlplusctl start
-------EOF--------
Postgresql Warm Standby Testing
[
2009/12/03 11:24 | by askwan ]
2009/12/03 11:24 | by askwan ]
OS: Debian5.0 lenny x86_64
Postgresql:8.3.8
Master :192.168.0.121
Warm Standby:192.168.0.122

1. install postgresql on both master and warm standby server.
2. Config passwordless ssh authentication use user postgres
Please refer to http://www.petefreitag.com/item/532.cfm
3. Install pg_standby on both both master and warm standby server.
#cd /usr/local/src/postgresql-8.3.8/contrib/pg_standby
#make
#make install
4. Config postgresql
In master server :
in warm standby server :
start master server :
5. Dump all production data to master server .
You can check the warm standby server ‘s /wal_archives directory , whether there is archive logs from master server located on .
6. Login to master server as postgres user.
Create a script to do a base backup:
7. Login to warm standby server as postgresql user.
Create a script to do some clean and configuration
Note:PostgreSQL 8.4 provides the recovery_end_command option.so,in recovery.conf add recovery_end_command=’rm –f /tmp/pgsql.trigger ’
pg_standby supports creation of a "warm standby" database server. It is designed to be a production-ready program, as well as a customizable template should you require specific modifications.
More about pg_standby,refer to http://www.postgresql.org/docs/current/static/pgstandby.html
http://www.enterprisedb.com/docs/en/8.4/pg/pgstandby.html
8. Start warm standby server
9. check warm standby postgresql logfile:
Check standby logfile:
10. failover
In warm standby server
touch /tmp/ pgsql.trigger
Postgresql:8.3.8
Master :192.168.0.121
Warm Standby:192.168.0.122
1. install postgresql on both master and warm standby server.
#cd /usr/local/src/postgresql-8.3.8/
#./configure –prefix=/usr/local/pgsql
#make
#make install
#mkdir /usr/local/pgsql/data
#chown postgres /usr/local/pgsql/data
#su - postgres
$/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
#./configure –prefix=/usr/local/pgsql
#make
#make install
#mkdir /usr/local/pgsql/data
#chown postgres /usr/local/pgsql/data
#su - postgres
$/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
2. Config passwordless ssh authentication use user postgres
Please refer to http://www.petefreitag.com/item/532.cfm
3. Install pg_standby on both both master and warm standby server.
#cd /usr/local/src/postgresql-8.3.8/contrib/pg_standby
#make
#make install
4. Config postgresql
In master server :
Quotation
archive_mode = on
archive_command = 'rsync -arv %p postgres@192.168.0.122:/wal_archives/%f'
archive_timeout = 1200
archive_command = 'rsync -arv %p postgres@192.168.0.122:/wal_archives/%f'
archive_timeout = 1200
in warm standby server :
#mkdir /wal_archives
#chown postgres /wal_archives/
#chown postgres /wal_archives/
start master server :
pg_ctl -D /usr/local/pgsql/data/ start -l /usr/local/pgsql/data/logfile
5. Dump all production data to master server .
You can check the warm standby server ‘s /wal_archives directory , whether there is archive logs from master server located on .
6. Login to master server as postgres user.
Create a script to do a base backup:
Quotation
#!/bin/bash
PGDATA=/usr/local/pgsql/data
psql -c "CHECKPOINT;"
psql -c "SELECT pg_start_backup('BASEBACKUP');"
tar -C /usr/local/pgsql/ -zcf - data |ssh 192.168.0.122 "tar -C /usr/local/pgsql/ -zxf -"
psql -c "select pg_stop_backup();"
echo "BASEBACKUP compete!"
PGDATA=/usr/local/pgsql/data
psql -c "CHECKPOINT;"
psql -c "SELECT pg_start_backup('BASEBACKUP');"
tar -C /usr/local/pgsql/ -zcf - data |ssh 192.168.0.122 "tar -C /usr/local/pgsql/ -zxf -"
psql -c "select pg_stop_backup();"
echo "BASEBACKUP compete!"
7. Login to warm standby server as postgresql user.
Create a script to do some clean and configuration
Quotation
#!/bin/bash
PG_HOME=/usr/local/pgsql
PGDATA=/usr/local/pgsql/data
trigger_file=/tmp/pgsql.trigger
pg_standby=$PG_HOME/bin/pg_standby
PG_ARCHIVES=/wal_archives
rm -f $PGDATA/recovery.*
rm -f $PGDATA/logfile
rm -f $PGDATA/postmaster.pid
rm -f $PGDATA/pg_xlog/0*
rm -f $PGDATA/pg_xlog/archive_status/0*
sed -i '/^archive_/s/^/#/g' $PGDATA/postgresql.conf
echo "restore_command = '$pg_standby -l -d -s 2 -t $trigger_file $PG_ARCHIVES %f %p %r 2>>/tmp/standby.log'" > $PGDATA/recovery.co
nf
chown postgres.postgres $PGDATA/recovery.conf
echo "Init completed! now start warm standby server."
PG_HOME=/usr/local/pgsql
PGDATA=/usr/local/pgsql/data
trigger_file=/tmp/pgsql.trigger
pg_standby=$PG_HOME/bin/pg_standby
PG_ARCHIVES=/wal_archives
rm -f $PGDATA/recovery.*
rm -f $PGDATA/logfile
rm -f $PGDATA/postmaster.pid
rm -f $PGDATA/pg_xlog/0*
rm -f $PGDATA/pg_xlog/archive_status/0*
sed -i '/^archive_/s/^/#/g' $PGDATA/postgresql.conf
echo "restore_command = '$pg_standby -l -d -s 2 -t $trigger_file $PG_ARCHIVES %f %p %r 2>>/tmp/standby.log'" > $PGDATA/recovery.co
nf
chown postgres.postgres $PGDATA/recovery.conf
echo "Init completed! now start warm standby server."
Note:PostgreSQL 8.4 provides the recovery_end_command option.so,in recovery.conf add recovery_end_command=’rm –f /tmp/pgsql.trigger ’
pg_standby supports creation of a "warm standby" database server. It is designed to be a production-ready program, as well as a customizable template should you require specific modifications.
More about pg_standby,refer to http://www.postgresql.org/docs/current/static/pgstandby.html
http://www.enterprisedb.com/docs/en/8.4/pg/pgstandby.html
8. Start warm standby server
pg_ctl -D /usr/local/pgsql/data start -l /usr/local/pgsql/data/logfile
9. check warm standby postgresql logfile:
Quotation
LOG: database system was interrupted; last known up at 2009-12-03 11:44:37 CST
LOG: starting archive recovery
LOG: restore_command = '/usr/local/pgsql/bin/pg_standby -l -d -s 2 -t /tmp/pgsql.trigger /wal_archives %f %p %r 2>>/tmp/standby.log
'
LOG: restored log file "000000010000000000000014.00000020.backup" from archive
LOG: restored log file "000000010000000000000014" from archive
LOG: automatic recovery in progress
LOG: redo starts at 0/14000068
FATAL: the database system is starting up
LOG: restored log file "000000010000000000000015" from archive
LOG: restored log file "000000010000000000000016" from archive
LOG: restored log file "000000010000000000000017" from archive
LOG: restored log file "000000010000000000000018" from archive
LOG: restored log file "000000010000000000000019" from archive
LOG: restored log file "00000001000000000000001A" from archive
LOG: restored log file "00000001000000000000001B" from archive
LOG: restored log file "00000001000000000000001C" from archive
LOG: restored log file "00000001000000000000001D" from archive
LOG: restored log file "00000001000000000000001E" from archive
LOG: restored log file "00000001000000000000001F" from archive
LOG: restored log file "000000010000000000000020" from archive
LOG: restored log file "000000010000000000000021" from archive
……
LOG: starting archive recovery
LOG: restore_command = '/usr/local/pgsql/bin/pg_standby -l -d -s 2 -t /tmp/pgsql.trigger /wal_archives %f %p %r 2>>/tmp/standby.log
'
LOG: restored log file "000000010000000000000014.00000020.backup" from archive
LOG: restored log file "000000010000000000000014" from archive
LOG: automatic recovery in progress
LOG: redo starts at 0/14000068
FATAL: the database system is starting up
LOG: restored log file "000000010000000000000015" from archive
LOG: restored log file "000000010000000000000016" from archive
LOG: restored log file "000000010000000000000017" from archive
LOG: restored log file "000000010000000000000018" from archive
LOG: restored log file "000000010000000000000019" from archive
LOG: restored log file "00000001000000000000001A" from archive
LOG: restored log file "00000001000000000000001B" from archive
LOG: restored log file "00000001000000000000001C" from archive
LOG: restored log file "00000001000000000000001D" from archive
LOG: restored log file "00000001000000000000001E" from archive
LOG: restored log file "00000001000000000000001F" from archive
LOG: restored log file "000000010000000000000020" from archive
LOG: restored log file "000000010000000000000021" from archive
……
Check standby logfile:
Quotation
Trigger file : /tmp/pgsql.trigger
Waiting for WAL file : 00000001.history
WAL file path : /wal_archives/00000001.history
Restoring to... : pg_xlog/RECOVERYHISTORY
Sleep interval : 2 seconds
Max wait interval : 0 forever
Command for restore : ln -s -f "/wal_archives/00000001.history" "pg_xlog/RECOVERYHISTORY"
Keep archive history : 000000000000000000000000 and later
running restore : OK
Trigger file : /tmp/pgsql.trigger
Waiting for WAL file : 000000010000000000000014.00000020.backup
WAL file path : /wal_archives/000000010000000000000014.00000020.backup
Restoring to... : pg_xlog/RECOVERYHISTORY
Sleep interval : 2 seconds
Max wait interval : 0 forever
Command for restore : ln -s -f "/wal_archives/000000010000000000000014.00000020.backup" "pg_xlog/RECOVERYHISTORY"
Keep archive history : 000000000000000000000000 and later
running restore : OK
Trigger file : /tmp/pgsql.trigger
Waiting for WAL file : 000000010000000000000014
WAL file path : /wal_archives/000000010000000000000014
Restoring to... : pg_xlog/RECOVERYXLOG
Sleep interval : 2 seconds
Max wait interval : 0 forever
Command for restore : ln -s -f "/wal_archives/000000010000000000000014" "pg_xlog/RECOVERYXLOG"
Keep archive history : 000000000000000000000000 and later
running restore : OK
Trigger file : /tmp/pgsql.trigger
Waiting for WAL file : 000000010000000000000015
WAL file path : /wal_archives/000000010000000000000015
Restoring to... : pg_xlog/RECOVERYXLOG
Sleep interval : 2 seconds
Max wait interval : 0 forever
Command for restore : ln -s -f "/wal_archives/000000010000000000000015" "pg_xlog/RECOVERYXLOG"
Keep archive history : 000000010000000000000014 and later
WAL file not present yet. Checking for trigger file...
WAL file not present yet. Checking for trigger file...
WAL file not present yet. Checking for trigger file...
Trigger file : /tmp/pgsql.trigger
Waiting for WAL file : 000000010000000000000016
WAL file path : /wal_archives/000000010000000000000016
Restoring to... : pg_xlog/RECOVERYXLOG
Sleep interval : 2 seconds
Restoring to... : pg_xlog/RECOVERYXLOG
Sleep interval : 2 seconds
Max wait interval : 0 forever
Command for restore : ln -s -f "/wal_archives/000000010000000000000016" "pg_xlog/RECOVERYXLOG"
Keep archive history : 000000010000000000000014 and later
running restore : OK
......
WAL file not present yet. Checking for trigger file...
WAL file not present yet. Checking for trigger file...
......
Waiting for WAL file : 00000001.history
WAL file path : /wal_archives/00000001.history
Restoring to... : pg_xlog/RECOVERYHISTORY
Sleep interval : 2 seconds
Max wait interval : 0 forever
Command for restore : ln -s -f "/wal_archives/00000001.history" "pg_xlog/RECOVERYHISTORY"
Keep archive history : 000000000000000000000000 and later
running restore : OK
Trigger file : /tmp/pgsql.trigger
Waiting for WAL file : 000000010000000000000014.00000020.backup
WAL file path : /wal_archives/000000010000000000000014.00000020.backup
Restoring to... : pg_xlog/RECOVERYHISTORY
Sleep interval : 2 seconds
Max wait interval : 0 forever
Command for restore : ln -s -f "/wal_archives/000000010000000000000014.00000020.backup" "pg_xlog/RECOVERYHISTORY"
Keep archive history : 000000000000000000000000 and later
running restore : OK
Trigger file : /tmp/pgsql.trigger
Waiting for WAL file : 000000010000000000000014
WAL file path : /wal_archives/000000010000000000000014
Restoring to... : pg_xlog/RECOVERYXLOG
Sleep interval : 2 seconds
Max wait interval : 0 forever
Command for restore : ln -s -f "/wal_archives/000000010000000000000014" "pg_xlog/RECOVERYXLOG"
Keep archive history : 000000000000000000000000 and later
running restore : OK
Trigger file : /tmp/pgsql.trigger
Waiting for WAL file : 000000010000000000000015
WAL file path : /wal_archives/000000010000000000000015
Restoring to... : pg_xlog/RECOVERYXLOG
Sleep interval : 2 seconds
Max wait interval : 0 forever
Command for restore : ln -s -f "/wal_archives/000000010000000000000015" "pg_xlog/RECOVERYXLOG"
Keep archive history : 000000010000000000000014 and later
WAL file not present yet. Checking for trigger file...
WAL file not present yet. Checking for trigger file...
WAL file not present yet. Checking for trigger file...
Trigger file : /tmp/pgsql.trigger
Waiting for WAL file : 000000010000000000000016
WAL file path : /wal_archives/000000010000000000000016
Restoring to... : pg_xlog/RECOVERYXLOG
Sleep interval : 2 seconds
Restoring to... : pg_xlog/RECOVERYXLOG
Sleep interval : 2 seconds
Max wait interval : 0 forever
Command for restore : ln -s -f "/wal_archives/000000010000000000000016" "pg_xlog/RECOVERYXLOG"
Keep archive history : 000000010000000000000014 and later
running restore : OK
......
WAL file not present yet. Checking for trigger file...
WAL file not present yet. Checking for trigger file...
......
10. failover
In warm standby server
touch /tmp/ pgsql.trigger



