Describe 首頁/work/QH-gzdb-Restore here.
gzdb RAC数据库恢复至单机
环境信息
- NBU Server : nbu-wg.qhlhfund.com
- 源主机: 10.0.10.111 / GZDB RAC (RHEL6.5, Oracle database 11.2.0.4)
- 目标主机: 10.0.8.13 / RHEL6.5, Oracle database 11.2.0.4)
DBID=3049006903
注:DBID提前记录并修改为对应值
环境准备
列出备份集
登录NBU Server或目标主机, 列出备份集, 找到对应的控制文件
/usr/openv/netbackup/bin/bplist -C GZDB_3049006903 -t 4 -R -l / | head -30
编辑pfile文件以适用单机环境
- SSH 使用oracle用户登录目标主机10.0.8.13
cd $ORACLE_HOME/dbs/
vi init$ORACLE_SID.ora
gzdb.__db_cache_size=16508780544 gzdb.__java_pool_size=268435456 gzdb.__large_pool_size=201326592 gzdb.__oracle_base='/u01/oracle/app'#ORACLE_BASE set from environment gzdb.__pga_aggregate_target=7516192768 gzdb.__sga_target=19327352832 gzdb.__shared_io_pool_size=0 gzdb.__shared_pool_size=2214592512 gzdb.__streams_pool_size=0 *.audit_file_dest='/u01/oracle/app/admin/gzdb/adump' *.audit_sys_operations=TRUE *.audit_trail='db' *.compatible='11.2.0.4.0' *.control_files='/data/gzdb/controlfile/current1','/log/gzdb/controlfile/current2' *.db_block_size=8192 *.db_domain='' *.db_name='gzdb' *.db_recovery_file_dest='/log/gzdb/archivelog' *.db_recovery_file_dest_size=96636764160 *.db_unique_name='gzdb' *.diagnostic_dest='/u01/oracle/app' *.dispatchers='(PROTOCOL=TCP) (SERVICE=gzdbXDB)' *.fal_client='gzdb' *.fal_server='gzdbstb' *.log_archive_config='DG_CONFIG=(gzdb,gzdbstb)' *.log_archive_dest_1='location=/log/gzdb/archivelog valid_for=(all_logfiles,all_roles) db_unique_name=gzdb' *.log_archive_dest_2='SERVICE=gzdbstb DB_UNIQUE_NAME=gzdbstb lgwr ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)' *.log_archive_dest_state_1='enable' *.log_archive_dest_state_2='enable' *.log_archive_format='gzdb_%t_%s_%r.dbf' *.log_archive_max_processes=30 *.open_cursors=300 *.pga_aggregate_target=7516192768 *.processes=300 *.remote_login_passwordfile='exclusive' *.resource_limit=TRUE *.session_cached_cursors=500 *.sessions=330 *.sga_max_size=19327352832 *.sga_target=19327352832 *.standby_file_management='AUTO' *.transactions=580 *.undo_retention=14400 gzdb.undo_tablespace='UNDOTBS1'
创建orapwd文件
- SSH 使用oracle用户登录目标主机10.0.8.13
cd $ORACLE_HOME/dbs/
orapwd file=orapw$ORACLE_SID entries=10
创建相关目录
- SSH 使用oracle用户登录目标主机10.0.8.13
- 如果权限不足, 需要切換为root用戶執行
mkdir -pv /u01/oracle/app/admin/gzdb/adump
mkdir -pv /log/gzdb/{controlfile,archivelog}
mkdir -pv /data/gzdb/{datafile,onlinelog,controlfile,tempfile}
迁移实施
如无特别说明, 以下迁移实施的操作都是在目标主机完成的.
即: 通过SSH客户端并使用oracle用户登录目标主机10.0.8.13
恢复 controlfile
rman target / nocatalog <<"EOF"
spool log to Restore-Controlfile.log
SET DBID=3049006903
startup nomount;
RUN {
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';
send 'NB_ORA_CLIENT=GZDB_3049006903';
send 'NB_ORA_SERV=nbu-wg.qhlhfund.com';
restore controlfile from '/ctrl_dGZDB_u8i1pl5ti_s19730_p1_t1134204850'; ## 修改为实际的控制文件
ALTER DATABASE MOUNT;
RELEASE CHANNEL ch00;
}
spool log off
EOF
生成rman set newname脚本
方法一
$ sqlplus / as sysdba
SQL> select 'set newname for datafile '||t.file#||' to '||'''/data/gzdb/datafile' ||replace(t.name,'+DATA/gzdb/datafile','')||''';' from v$datafile t order by t.file#; SQL> select 'set newname for tempfile '||t.file#||' to '||'''/data/gzdb/tempfile' ||replace(t.name,'+DATA/gzdb/tempfile','')||''';' from v$tempfile t order by t.file#
'SETNEWNAMEFORDATAFILE'||T.FILE#||'TO'||'''/DATA/GZDB/DATAFILE'||REPLACE(T.NAME, -------------------------------------------------------------------------------- set newname for datafile 1 to '/data/gzdb/datafile/system.311.884614079'; set newname for datafile 2 to '/data/gzdb/datafile/sysaux.312.884614081'; set newname for datafile 3 to '/data/gzdb/datafile/undotbs1.313.884614081'; set newname for datafile 4 to '/data/gzdb/datafile/undotbs2.315.884614087'; set newname for datafile 5 to '/data/gzdb/datafile/users.316.884614087'; set newname for datafile 6 to '/data/gzdb/datafile/yts_xbrl.341.899203963'; set newname for datafile 7 to '/data/gzdb/datafile/yts_gzapi.480.899396139'; set newname for datafile 8 to '/data/gzdb/datafile/tbs_aud.394.957958875'; set newname for datafile 9 to '/data/gzdb/datafile/yts_gz_gm.360.899201693'; set newname for datafile 10 to '/data/gzdb/datafile/tbs_aud.472.975659031'; set newname for datafile 11 to '/data/gzdb/datafile/kts_zjqs_his.522.978111579'; 'SETNEWNAMEFORDATAFILE'||T.FILE#||'TO'||'''/DATA/GZDB/DATAFILE'||REPLACE(T.NAME, -------------------------------------------------------------------------------- set newname for datafile 12 to '/data/gzdb/datafile/users.523.978587813'; set newname for datafile 13 to '/data/gzdb/datafile/yts_frdata.556.981898793'; set newname for datafile 14 to '/data/gzdb/datafile/yts_gz_zh.364.899201693'; set newname for datafile 15 to '/data/gzdb/datafile/yts_frinfo.470.981898797'; set newname for datafile 16 to '/data/gzdb/datafile/sysaux.596.1019289631'; set newname for datafile 17 to '/data/gzdb/datafile/kts_zjqs_web.401.896524601'; set newname for datafile 18 to '/data/gzdb/datafile/tbs_aud.525.1019329343'; set newname for datafile 19 to '/data/gzdb/datafile/yts_gz_gm.445.1042099895'; 19 rows selected. set newname for tempfile 1 to '/data/gzdb/tempfile/temp.314.884614083';
方法二
在rman中运行 report schema, 提取其结果并使用awk&sed等命令生成.
查看备份的归档
RMAN> list backup of archivelog all;
List of Archived Logs in backup set 9 Thrd Seq Low SCN Low Time Next SCN Next Time ---- ------- ---------- --------- ---------- --------- 1 56 214541 01-FEB-21 226238 01-FEB-21 1 57 226238 01-FEB-21 226240 01-FEB-21 1 58 226240 01-FEB-21 233107 12-FEB-21 2 1 186185 28-JAN-21 225714 01-FEB-21 2 2 225714 01-FEB-21 226037 01-FEB-21 2 3 226037 01-FEB-21 233110 12-FEB-21
获取 until sequence + 1
set until sequence 59 thread 1;
目标主机-还原&恢复验证(仅验证,可选)
主要作用为验证恢复是否可用,恢复时间预估等,执行以下脚本
rman target / nocatalog <<"EOF"
spool log to Restore_preview_validate.log
RUN {
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';
ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';
ALLOCATE CHANNEL ch02 TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';
ALLOCATE CHANNEL ch03 TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';
ALLOCATE CHANNEL ch04 TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';
ALLOCATE CHANNEL ch05 TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';
send 'NB_ORA_CLIENT=GZDB_3049006903';
send 'NB_ORA_SERV=nbu-wg.qhlhfund.com';
set until sequence 32200 thread 1;
set newname for datafile 1 to '/data/gzdb/datafile/system.311.884614079';
set newname for datafile 2 to '/data/gzdb/datafile/sysaux.312.884614081';
set newname for datafile 3 to '/data/gzdb/datafile/undotbs1.313.884614081';
set newname for datafile 4 to '/data/gzdb/datafile/undotbs2.315.884614087';
set newname for datafile 5 to '/data/gzdb/datafile/users.316.884614087';
set newname for datafile 6 to '/data/gzdb/datafile/yts_xbrl.341.899203963';
set newname for datafile 7 to '/data/gzdb/datafile/yts_gzapi.480.899396139';
set newname for datafile 8 to '/data/gzdb/datafile/tbs_aud.394.957958875';
set newname for datafile 9 to '/data/gzdb/datafile/yts_gz_gm.360.899201693';
set newname for datafile 10 to '/data/gzdb/datafile/tbs_aud.472.975659031';
set newname for datafile 11 to '/data/gzdb/datafile/kts_zjqs_his.522.978111579';
set newname for datafile 12 to '/data/gzdb/datafile/users.523.978587813';
set newname for datafile 13 to '/data/gzdb/datafile/yts_frdata.556.981898793';
set newname for datafile 14 to '/data/gzdb/datafile/yts_gz_zh.364.899201693';
set newname for datafile 15 to '/data/gzdb/datafile/yts_frinfo.470.981898797';
set newname for datafile 16 to '/data/gzdb/datafile/sysaux.596.1019289631';
set newname for datafile 17 to '/data/gzdb/datafile/kts_zjqs_web.401.896524601';
set newname for datafile 18 to '/data/gzdb/datafile/tbs_aud.525.1019329343';
set newname for datafile 19 to '/data/gzdb/datafile/yts_gz_gm.445.1042099895';
set newname for tempfile 1 to '/data/gzdb/tempfile/temp.314.884614083';
restore database preview;
restore database validate;
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
RELEASE CHANNEL ch02;
RELEASE CHANNEL ch03;
RELEASE CHANNEL ch04;
RELEASE CHANNEL ch05;
}
spool log off
EOF
restore database
rman target / nocatalog <<"EOF"
spool log to Restore.log
RUN {
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';
ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';
ALLOCATE CHANNEL ch02 TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';
ALLOCATE CHANNEL ch03 TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';
ALLOCATE CHANNEL ch04 TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';
ALLOCATE CHANNEL ch05 TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';
send 'NB_ORA_CLIENT=GZDB_3049006903';
send 'NB_ORA_SERV=nbu-wg.qhlhfund.com';
set until sequence 32200 thread 1;
set newname for datafile 1 to '/data/gzdb/datafile/system.311.884614079';
set newname for datafile 2 to '/data/gzdb/datafile/sysaux.312.884614081';
set newname for datafile 3 to '/data/gzdb/datafile/undotbs1.313.884614081';
set newname for datafile 4 to '/data/gzdb/datafile/undotbs2.315.884614087';
set newname for datafile 5 to '/data/gzdb/datafile/users.316.884614087';
set newname for datafile 6 to '/data/gzdb/datafile/yts_xbrl.341.899203963';
set newname for datafile 7 to '/data/gzdb/datafile/yts_gzapi.480.899396139';
set newname for datafile 8 to '/data/gzdb/datafile/tbs_aud.394.957958875';
set newname for datafile 9 to '/data/gzdb/datafile/yts_gz_gm.360.899201693';
set newname for datafile 10 to '/data/gzdb/datafile/tbs_aud.472.975659031';
set newname for datafile 11 to '/data/gzdb/datafile/kts_zjqs_his.522.978111579';
set newname for datafile 12 to '/data/gzdb/datafile/users.523.978587813';
set newname for datafile 13 to '/data/gzdb/datafile/yts_frdata.556.981898793';
set newname for datafile 14 to '/data/gzdb/datafile/yts_gz_zh.364.899201693';
set newname for datafile 15 to '/data/gzdb/datafile/yts_frinfo.470.981898797';
set newname for datafile 16 to '/data/gzdb/datafile/sysaux.596.1019289631';
set newname for datafile 17 to '/data/gzdb/datafile/kts_zjqs_web.401.896524601';
set newname for datafile 18 to '/data/gzdb/datafile/tbs_aud.525.1019329343';
set newname for datafile 19 to '/data/gzdb/datafile/yts_gz_gm.445.1042099895';
set newname for tempfile 1 to '/data/gzdb/tempfile/temp.314.884614083';
restore database;
switch datafile all;
switch tempfile all;
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
RELEASE CHANNEL ch02;
RELEASE CHANNEL ch03;
RELEASE CHANNEL ch04;
RELEASE CHANNEL ch05;
}
spool log off
EOF
rename the online redolog files
SQL> select member from v$logfile;
SQL> select 'alter database rename file '||''''||t.member||''||''' to '||'''/data/gzdb/onlinelog' ||replace(t.member,'+DATA/gzdb/onlinelog','')||''';' from v$logfile t order by t.group#;
SQL> alter database rename file '/<old_path>/redo01.log' to '/<new_path>/redo01.log';
示例
alter database rename file '+DATA/gzdb/onlinelog/group_5.290.884706935' to '/data/gzdb/onlinelog/redolog9.log';
SQL> / 'ALTERDATABASERENAMEFILE'||''''||T.MEMBER||''||'''TO'||'''/DATA/GZDB/ONLINELOG'||REPLACE(T.MEMBER,'+DATA/GZDB/ONLINELOG','')||''';' ---------------------------------------------------------------------------------------------------------------------------------------------------------------- alter database rename file '+DATA/gzdb/onlinelog/group_1.305.884614075' to '/data/gzdb/onlinelog/group_1.305.884614075'; alter database rename file '+DATA/gzdb/onlinelog/group_1.306.884614075' to '/data/gzdb/onlinelog/group_1.306.884614075'; alter database rename file '+DATA/gzdb/onlinelog/group_2.307.884614075' to '/data/gzdb/onlinelog/group_2.307.884614075'; alter database rename file '+DATA/gzdb/onlinelog/group_2.308.884614077' to '/data/gzdb/onlinelog/group_2.308.884614077'; alter database rename file '+DATA/gzdb/onlinelog/group_3.309.884614077' to '/data/gzdb/onlinelog/group_3.309.884614077'; alter database rename file '+DATA/gzdb/onlinelog/group_3.310.884614077' to '/data/gzdb/onlinelog/group_3.310.884614077'; alter database rename file '+DATA/gzdb/onlinelog/group_4.317.884614613' to '/data/gzdb/onlinelog/group_4.317.884614613'; alter database rename file '+DATA/gzdb/onlinelog/group_4.318.884614613' to '/data/gzdb/onlinelog/group_4.318.884614613'; alter database rename file '+DATA/gzdb/onlinelog/group_5.319.884614615' to '/data/gzdb/onlinelog/group_5.319.884614615'; alter database rename file '+DATA/gzdb/onlinelog/group_5.320.884614615' to '/data/gzdb/onlinelog/group_5.320.884614615'; alter database rename file '+DATA/gzdb/onlinelog/group_6.321.884614615' to '/data/gzdb/onlinelog/group_6.321.884614615'; 'ALTERDATABASERENAMEFILE'||''''||T.MEMBER||''||'''TO'||'''/DATA/GZDB/ONLINELOG'||REPLACE(T.MEMBER,'+DATA/GZDB/ONLINELOG','')||''';' ---------------------------------------------------------------------------------------------------------------------------------------------------------------- alter database rename file '+DATA/gzdb/onlinelog/group_6.322.884614617' to '/data/gzdb/onlinelog/group_6.322.884614617'; alter database rename file '+DATA/gzdb/onlinelog/group_7.452.962288579' to '/data/gzdb/onlinelog/group_7.452.962288579'; alter database rename file '+DATA/gzdb/onlinelog/group_8.423.962288579' to '/data/gzdb/onlinelog/group_8.423.962288579'; alter database rename file '+DATA/gzdb/onlinelog/group_9.298.962288581' to '/data/gzdb/onlinelog/group_9.298.962288581'; alter database rename file '+DATA/gzdb/onlinelog/group_10.410.962288581' to '/data/gzdb/onlinelog/group_10.410.962288581'; 16 rows selected. alter database rename file '+DATA/gzdb/onlinelog/group_7.452.962288579' to '/data/gzdb/onlinelog/group_7.452.962288579'; alter database rename file '+DATA/gzdb/onlinelog/group_8.423.962288579' to '/data/gzdb/onlinelog/group_8.423.962288579'; alter database rename file '+DATA/gzdb/onlinelog/group_9.298.962288581' to '/data/gzdb/onlinelog/group_9.298.962288581'; alter database rename file '+DATA/gzdb/onlinelog/group_10.410.962288581' to '/data/gzdb/onlinelog/group_10.410.962288581';
手动copy asm磁盘中的归档日志至目标主机(可选)
* SSH 使用grid用户登录源主机10.0.10.111 ASM copy archivelog FROM ASM to LOCAL
mkdir /backup/$(date +%F)
chown grid:oinstall /backup/$(date +%F)
for i in $(asmcmd ls RECO/GZDB/ARCHIVELOG/$(date +%F)); do
- asmcmd cp +RECO/GZDB/ARCHIVELOG/$(date +%F)/$i /backup/$(date +%F)
done
scp -r /backup/$(date +%F) oracle@10.0.8.13:/backup/$(date +%F)
recover database
rman target / nocatalog <<"EOF"
spool log to Recover.log
RUN {
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';
send 'NB_ORA_CLIENT=GZDB_3049006903';
send 'NB_ORA_SERV=nbu-wg.qhlhfund.com';
set until sequence 32200 thread 1;
recover database;
RELEASE CHANNEL ch00;
}
spool log off
EOF* 恢复新的归档 rman target /
catalog start with '/backup/$(date +%F)'; crosscheck backupset; recover database;
查看并修复遇到的问题.
直到没有报错, 则执行下一步.
清除在线日志
SQL> select THREAD#, STATUS, ENABLED from v$thread;
SQL> SELECT a.group#, a.member, b.bytes/1024/1024, b.thread#, b.status FROM v$logfile a, v$log b WHERE a.group# = b.group#
SQL> SELECT a.group#, a.member, b.bytes/1024/1024, b.status, b.thread# FROM v$logfile a, v$log b WHERE a.group# = b.group#
2 ;
GROUP# MEMBER B.BYTES/1024/1024 STATUS THREAD#
---------- -------------------------------------------------------------------------------- ----------------- ---------------- ----------
1 +DATA/gzdb/onlinelog/group_1.305.884614075 512 ACTIVE 1
1 +DATA/gzdb/onlinelog/group_1.306.884614075 512 ACTIVE 1
2 +DATA/gzdb/onlinelog/group_2.307.884614075 512 ACTIVE 1
2 +DATA/gzdb/onlinelog/group_2.308.884614077 512 ACTIVE 1
3 +DATA/gzdb/onlinelog/group_3.309.884614077 512 CURRENT 1
3 +DATA/gzdb/onlinelog/group_3.310.884614077 512 CURRENT 1
4 +DATA/gzdb/onlinelog/group_4.317.884614613 512 ACTIVE 2
4 +DATA/gzdb/onlinelog/group_4.318.884614613 512 ACTIVE 2
5 +DATA/gzdb/onlinelog/group_5.319.884614615 512 ACTIVE 2
5 +DATA/gzdb/onlinelog/group_5.320.884614615 512 ACTIVE 2
6 +DATA/gzdb/onlinelog/group_6.321.884614615 512 CURRENT 2
GROUP# MEMBER B.BYTES/1024/1024 STATUS THREAD#
---------- -------------------------------------------------------------------------------- ----------------- ---------------- ----------
6 +DATA/gzdb/onlinelog/group_6.322.884614617 512 CURRENT 2
12 rows selected.SQL> select group# from v$log where THREAD#=2;
SQL> alter database disable thread 2;
alter database drop logfile group 4;
alter database drop logfile group 5;
alter database drop logfile group 6;
select THREAD#, STATUS, ENABLED from v$thread;
静态监听配置
[oracle@zjqsdbser admin]$ cat listener.ora
[oracle@zjqsdbser admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/oracle/app/11.2.0/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = gzdb)
(ORACLE_HOME = /u01/oracle/app/11.2.0)
(SID_NAME = gzdb)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.8.13)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = /u01/oracle/app
hugepages_setting
#
# hugepages_setting.sh
#
# Linux bash script to compute values for the
# recommended HugePages/HugeTLB configuration
#
# Note: This script does calculation for all shared memory
# segments available when the script is run, no matter it
# is an Oracle RDBMS shared memory segment or not.
# Check for the kernel version
KERN=`uname -r | awk -F. '{ printf("%d.%d\n",$1,$2); }'`
# Find out the HugePage size
HPG_SZ=`grep Hugepagesize /proc/meminfo | awk {'print $2'}`
# Start from 1 pages to be on the safe side and guarantee 1 free HugePage
NUM_PG=1
# Cumulative number of pages required to handle the running shared memory segments
for SEG_BYTES in `ipcs -m | awk {'print $5'} | grep "[0-9][0-9]*"`
do
MIN_PG=`echo "$SEG_BYTES/($HPG_SZ*1024)" | bc -q`
if [ $MIN_PG -gt 0 ]; then
NUM_PG=`echo "$NUM_PG+$MIN_PG+1" | bc -q`
fi
done
# Finish with results
case $KERN in
'2.4') HUGETLB_POOL=`echo "$NUM_PG*$HPG_SZ/1024" | bc -q`;
echo "Recommended setting: vm.hugetlb_pool = $HUGETLB_POOL" ;;
'2.6' | '3.8' | '3.10' | '4.1' | '4.14' ) echo "Recommended setting: vm.nr_hugepages = $NUM_PG" ;;
*) echo "Unrecognized kernel version $KERN. Exiting." ;;
esac
# EndSQL> show parameter large; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ large_pool_size big integer 0 use_large_pages string TRUE
# echo "vm.nr_hugepages = 9221" >> /etc/sysctl.conf
# sysctl -p
[oracle@zjqsdbser ~]$ grep -i hugepa /proc/meminfo AnonHugePages: 38912 kB HugePages_Total: 9221 HugePages_Free: 8374 HugePages_Rsvd: 8370 HugePages_Surp: 0 Hugepagesize: 2048 kB
echo "9221*2048" | bc
cat >> /etc/security/limits.conf <<"EOF" * soft memlock 18884608 * hard memlock 18884608 EOF
创建spfile
SQL> create spfile from pfile;
打开数据库
目标主机-打开数据库
alter database open resetlogs;
- 关闭并重新打开数据库验证
SQL> shutdown immediate
SQL> startup
SQL> select tablespace_name from dba_tablespaces where contents='UNDO';
SQL> drop tablespace UNDOTBS2 including contents and datafiles;
至此, 全部操作完成.
Troubleshooting
recover database until sequence
预期的sequence缺少, 忽略之
RMAN> recover database until sequence XXX thread 2;
Parameters (Option)
su - oracle
sqlplus / as sysdba
# processes=x sessions=x*1.1+5 transactions=sessions*1.1
select name, value from v$parameter where name in ('sessions','processes','transactions');
alter system set processes=300 scope=spfile;
alter system set sessions=335 scope=spfile;
alter system set transactions=368 scope=spfile;
alter system set sga_max_size=18G scope=spfile;
alter system set sga_target=18G scope=spfile;
alter system set pga_aggregate_target=7G scope=spfile;
shutdown immediate
startup