DataGuard 雙節點 node node
在node上配置網絡 包括 網卡mac地址ipdns名 並測試網絡
在node上 運行終端terminal命令——env |grep PATH
在node上創建數據庫 選擇 特殊數據庫 類型
在node上 運行終端terminal命令——env |grep ORA全局數據庫名要和配置文件裡的oracle_sid設置的同名
在node上不設置默認歸檔日志 alter system set db_recovery_file_dest= scope=spfile同時需要啟用arch日志進程 並手工創建歸檔日志目錄及路徑(mkdir p /u/app/arch 在DBCA上添加相關歸檔路徑/u/app/arch)
注意事項 在更換默認歸檔路徑後不會立即生效應重新生成spfile文件
create spfile= from pfile
創建數據庫開始——結束完成後
在node上 運行終端命令——ps ef 查看進程出現oracle相關服務進程注意/etc/hosts 查看idIP 在/etc/hosts下node和node都需配置為主機設置快捷方式
ca(dbca) ——netmgr & 也可以主數據庫
創建listener
查看listener——在/oracle下執行cd network/admin/
裡面有個 listenerora文件編輯文件
命令 vi listenerora
ca配置tnsnameora node和node都需配置(連接後台服務的)
注意在從庫上面也要在建立一個一模一樣的庫 采取方法 從主庫復制一份過去詳見 最下面 使用RMAN duplicate命令復制數據庫
注意在從庫上面也要在建立一個一模一樣的庫 采取方法 從主庫復制一份過去
詳見 最下面 使用RMAN duplicate命令復制數據庫
ps ef | more查看配置是否成功也可以在netca界面上看結果
ps ef |grep oracle 查看進程
在node上配置listenertnsname
配置完後 測試兩個node的網絡互通——sqlplus scott/tiger@test
sqlplus scott/tiger@test
開始配置DataGuard
配置主庫(Primary Database)相關工作
enable forced logging——alter database force logging
create a password file ——配置dbca時 oracle 自動創建
——database不處於open狀態時使用處於open狀態是 使用 user$表
setting 主庫 初始化 參數 ——主要工作
++++++++++++++++
db_unique_name=uqn_node 自定義命名
log_archive_config=dg_config=(uqn_node uqn_node)
log_archive_dest_=SERVICE=lsnode tnsname
valid_for=(ONLINE_LOGFILESPRIMARY_ROLE)
db_unique_name=uqn_node
LOG_ARCHIVE_DEST_STATE_=ENABLE
LOG_ARCHIVE_DEST_STATE_=ENABLE
fal_server=lsnode
fal_client=lsnode
STANDBY_FILE_MANAGEMENT=AUTO
*db_file_name_convert=/u/oradata/test/oradata/test *log_file_name_convert=/u/oradata/test/oradata/test
enable archiving
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
創建主庫備庫(PrimaryStandby)
備份主庫數據文件——rman備份 backup database
創建控制文件 for the Standby Database
startup mount;
alter database create standby controlfile as /u/oradata/test/standbyctl;
alter database open;
配置初始化參數 for the Standby Database
從主庫拷貝文件到備庫
包括datafilesstandby control fileinitial file Pscreate pfile from spfile前面在創建oracle初始化參數文件時是使用initdgdemoora文件而之前的spfiledgdemoora文件應該刪除掉
刪除命令rm f spfiledgdemoora
cp initdgdemoora /u/oradata
cp orapwdgdemo /u/oradata
檢查一下/u/oradata目錄下的文件
包括archdgdemoinitdgdemooraorapwdgdemobostonctl
有兩種方式: 打包用ftp工具傳過去
在/u目錄下 scp r admin oradata root@IP:/u
為備庫配置環境
修改配置文件之前先執行一下操作
先把/oradata/下的控制文件用bostonctl替換掉
在dgdemo下
rm f control*
mv /bostonctl /controlctl
cp controlctl controlctl
cp controlctl controlctl
將初始化參數文件拷到/oracle/dbs 下
mv $ORACLE_HOME/dbs/inittestora
mv $ORACLE_HOME/dbs/orapwtest
setting 備庫 初始化 參數
*db_unique_name=uqn_node 自定義命名
*log_archive_config=dg_config=(uqn_node uqn_node)
*log_archive_dest_=location=/u/app/arch
*log_archive_dest_=SERVICE=lsnode tnsname
valid_for=(ONLINE_LOGFILESPRIMARY_ROLE)
db_unique_name=uqn_node
*LOG_ARCHIVE_DEST_STATE_=ENABLE
*LOG_ARCHIVE_DEST_STATE_=ENABLE
*fal_server=lsnode
*fal_client=lsnode
*STANDBY_FILE_MANAGEMENT=AUTO
*db_file_name_convert=/u/app/oradata/u/app/oradata
*log_file_name_convert=/u/app/oradata/u/app/oradata
實例
test
__db_cache_size=
test
__java_pool_size=
test
__large_pool_size=
test
__shared_pool_size=
test
__streams_pool_size=
*
audit_file_dest=
/u
/app/admin/test
/adump
*
background_dump_dest=
/u
/app/admin/test
/bdump
patible=
ntrol_files=
/u
/app/oradata/control
ctl
/u
/app/oradata/control
ctl
/u
/app/oradata/control
ctl
re_dump_dest=
/u
/app/admin/test
/cdump
*
db_block_size=
*
db_domain=
*
db_file_multiblock_read_count=
*
db_name=
test
*
db_recovery_file_dest_size=
*
db_recovery_file_dest=
*
dispatchers=
(PROTOCOL=TCP) (SERVICE=test
XDB)
*
job_queue_processes=
*
log_archive_start=TRUE
*
open_cursors=
*
pga_aggregate_target=
*
processes=
*
remote_login_passwordfile=
EXCLUSIVE
a_target=
*
undo_management=
AUTO
*
undo_tablespace=
UNDOTBS
*
user_dump_dest=
/u
/app/admin/test
/udump
*
db_unique_name=test
*
log_archive_config=
dg_config=(test
dubdg)
*
log_archive_dest_
=
location=/u
/app/oradata
*
log_archive_dest_
=
service=dubdg
valid_for=(online_logfiles
primary_role) db_unique_name=dubdg
*
log_archive_dest_state_
=enable
*
log_archive_dest_state_
=enable
*
fal_server=dubdg
*
fal_client=dubdg
*
standby_file_management=auto
*
db_file_name_convert=
/u
/app/oradata
/u
/app/oradata
*
log_file_name_convert=
/u
/app/oradata
/u
/app/oradata
詳見 最下面 使用RMAN duplicate命令復制數據庫
啟動物理備庫(補充startup open read only 默認備庫就是只讀啟動)
ps ef 進程查看
lsnrctl start主備庫注意監聽
startup主庫
測試lsnode 訪問 sqlplus system/oracle@lsnode
startup備庫
startup mount;
Start Redo Apply:
alter database recover managed standby database disconnect from session;
到這一步DataGuard 已經配置好了
測試:在主庫上執行
創建一個表scott_dept_test
alter system switch logfile;
或者alter system archive log current;
看備庫那邊有沒有接收主庫的redo log信息;
驗證物理備庫是否運行正常
接收主庫多少redo log 信息
select sequence#first_timenext_time from v$archived_log order by sequence#;
select sequence#applied from v$archived_log order by sequence#;
管理備庫
當備庫處在 readonly狀態時
備庫仍然可以接收主庫的archivelog信息也可以redo apply
但是在備庫查詢時 不能redo apply
取消redo apply or realtime apply;
alter database recover managed standby database cancel;
(open readonly access; alter database open; 可以查詢主庫的表了)
又要切換回到執行狀態呵 apply:
alter database recover managed standby database disconnect from session;
alter database recover managed standby database using current logfile;
啟動realtime apply
主備庫切換:防止主庫損壞時備庫可以及時運行
select namedatabase_role from v$database;
主庫切換:
alter database commit to switchover to physical
standby with session shutdown;
startup nomount;
alter database mount standby database;
recover managed standby database disconnect;
備庫執行:
alter database commit to switchover to primary;
切換問題:
select sequence#applied from v$archived_log order by sequence#;
查了 redo apply 是 no
壞壞公主 ::
SELECT SWITCHOVER_STATUS FROM
V$DATABASE
為何顯示的是RECVOERY NEEDED
壞壞公主 ::
是怎麼回事呢
相關回答原來遇到過好像是切換前要確認你的的從庫是否正常應用了所有的日志如果從庫和主庫不同步是切不過去的有空幫你再測試模擬一下
從庫在redo apply yes 時 主庫才能被切換
快速創建DataGuard
需要注意 前面的配置步驟還是要的 總之 一個原則 保證主從庫的一致性
使用RMAN duplicate命令復制數據庫月 at : 上午 · Filed under 安裝配置
去年剛開始學習RMAN的時候就知道有這個功能但是由於考試不考這個書上也沒有關於這條命令的詳細解釋
為新數據庫創建服務初始化參數文件密碼文件監聽在源數據庫配置本地服務名指向新數據庫
注意初始化參數文件中記得指定db_file_name_convert和log_file_name_convert參數以便後面rman復制數據庫的時候知道該把數據文件和日志文件放到哪裡去db_file_name_convert和
log_file_name_convert參數的格式如下(源數據庫數據文件目錄新數據庫數據文件目錄)
在sqlplus中用startup nomount將新數據庫啟動然後退出sqlplus這裡一定要退出
(rman也一樣quit)
否則會導致後面復制數據庫時掛在那裡因為復制數據庫過程中有一個步驟是shutdown而shutdown會等待用戶會話結束所以這裡不退出後面會一直等待我在這裡浪費了不少時間後來才恍然大悟明白原因
在源數據庫啟動rman連接到target和auxiliary這裡假設新數據庫的sid是aux
創建的本地服務名為dg用如下命令啟動rman
rman target / auxiliary sys/sys@aux
為從庫創建控制文件備份在做這一步之前 最好去刪除之前的backupcopy crosscheck backup; delete noprompt backup;crosscheck copy; delete copy
backup format /u/app/backup/%Ubkp database plus archivelog; 數據文件 日志文件
backup format /u/app/backup/%Ubkp current controlfile for standby; 控制文件
scp *bkp root@dg:/u/app/backup
下面是默認的
rman>backup current controlfile for standby;
對源數據庫和歸檔日志做全備份
rman>backup database plus archivelog;在默認路徑 有可能不匹配
scp *bkp root@dg:/u/app/backup
將備份從源數據庫復制到新數據庫同樣的目錄位置
rman>duplicate target database for standby nofilenamecheck;
注意to auxdb這裡要指定新數據庫的sidduplicate命令完成後新數據庫就可以使用了
select spid from v$process where addr=(select paddr from v$session where sid=(select sid from v$mystat where rownum<=));
set pagesize
set linesize
SQL> show parameter log_archive
From:http://tw.wingwit.com/Article/program/Oracle/201311/17349.html