用Shell脚本在推出的RAC节点上批量部署32个Oracle11gR2 RAC备份恢复案例场景的方法PART1
5.用Shell脚本在推出的节点上批量部署32个Oracle11gR2RAC备份恢复案例场景5.1备份恢复案例场景模拟脚本工作原理基本工作原理是:读者按照以上推送设置的要求安装
5.用Shell脚本在推出的节点上批量部署32个Oracle11gR2RAC备份恢复案例场景
5.1备份恢复案例场景模拟脚本工作原理
基本工作原理是:读者按照以上推送设置的要求安装好成套Oracle11gR2RAC环境后,复用以上的PXE推送端主机作为部署平台,在每套推出的Oracle11gR2RAC环境中部署32个Oracle11gR2RAC备份恢复案例场景脚本。脚本基于网络执行并批量部署;脚本同时支持下载到每一台Oracle11gR2RAC节点主机本地运行。脚本能模拟和评测每一套环境每一个备份恢复场景的恢复结果。
32个备份恢复场景模拟脚本调用一个公共子程序库“bclcustom-subprogram”。在该公共子程序库里面编写了各个备份恢复场景标准步骤。32个备份恢复场景模拟脚本实际上是根据场景模拟需要组合这些标准步骤来完成相应的场景模拟的。
公共子程序库“bclcustom-subprogram”如下:
####
####0SubprogramsBegin
###0.1NormalStructureBegin
###
#sub_gettinghas$1$2
sub_getting(){
echo””
echo“———————————————-LAB$1———————————————-”
echo”$2″
echo“———————————————-LAB$1———————————————-”
echo””
echo””
echo“******************”
echo“你的主机信息如下:”
echo“******************”
ifconfigeth0|head-n2|tail-n1|cut-f2-d:|cut-f1-d‘‘
echo””
hostname
echo””
uname-a
echo””
echo””
}
sub_detecting(){
/u01/app/11.2.0/grid/bin/crs_stat-t
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“sqlplus/nolog”
conn/assysdba
setechooff
setfeedbackoff
@/home/oracle/ptable.sql;
quit
!
fi
echo””
}
sub_revealing(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“sqlplus/nolog”
conn/assysdba
setechooff
setfeedbackoff
@/home/oracle/ttable.sql;
quit
!
fi
echo””
}
sub_resultscoring(){
/u01/app/11.2.0/grid/bin/crs_stat-t
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“sqlplus/nolog”
connsys/oracle_4U@$v_dbnameassysdba
setechooff
setfeedbackoff
@/home/oracle/rtable.sql;
quit
!
fi
echo””
}
sub_clearing(){
rm-f/home/oracle/ptable.sql
rm-f/home/oracle/ctable.sql
rm-f/home/oracle/ttable.sql
rm-f/home/oracle/rtable.sql
rm-f/usr/bin/bclcustom.sh
rm-f/home/oracle/asm
rm-f/home/oracle/bclcustom-subprogram
}
sub_clearing_excludertable(){
rm-f/home/oracle/ptable.sql
rm-f/home/oracle/ctable.sql
rm-f/home/oracle/ttable.sql
rm-f/usr/bin/bclcustom.sh
rm-f/home/oracle/asm
rm-f/home/oracle/bclcustom-subprogram
}
###
###0.1NormalStructureEnd
###0.2DatabaseOperationBegin
##0.2.1DatabaseSRVCTlOperationBegin
##
sub_shutdowning_normal(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“/u01/app/oracle/product/11.2.0/dbhome_1/bin/srvctlstopdatabase-d$v_dbname”
fi
echo””
}
##
##0.2.1DatabaseSRVCTlOperationEnd
##0.2.2DatabaseASMOperationBegin
##
#sub_destroyinghas$1
sub_destroying(){
#$1:system*
##undotbs1*
##undotbs2*
##sysaux*
##example*
##users*
##group*
##current*
#
su–grid-c“exportORACLE_SID=+ASM1;exportORACLE_HOME=/u01/app/11.2.0/grid;asmcmd“/home/oracle/asm
find/$1
exit
!
sleep15
sync
v_path1=`cut-f2-d‘+’/home/oracle/asm|tr-d[:blank:]`
foriin$v_path1
do
v_path2=”+”$i
su–grid-c“exportORACLE_SID=+ASM1;exportORACLE_HOME=/u01/app/11.2.0/grid;asmcmd“
rm$v_path2
exit
!
done
echo””
}
##
##0.2.2DatabaseASMOperationEnd
##0.2.3DatabaseSQLOperationBegin
##
sub_startuping_node1mount(){
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“sqlplus/nolog”
conn/assysdba
startupmountexclusive
quit
!
fi
echo””
}
sub_creating(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“sqlplus/nolog”
connsys/oracle_4U@$v_dbnameassysdba
setechooff
setfeedbackoff
@/home/oracle/ctable.sql;
quit
!
fi
echo””
}
sub_scripting_controlfile_nocatalog(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
echo“Nextmomentcontrolscriptisgoingtobecreate……”
echo“Displaythespidnumberofsessionhere:”
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“sqlplus/nolog”
connsys/oracle_4U@$v_dbnameassysdba
selectinstance_numberfromv\$instance;
selectspidfromv\$processp,v\$sessions,v\$mystatmwherep.addr=s.paddrandm.sid=s.sidandrownum=1;
alterdatabasebackupcontrolfiletotrace;
quit
!
fi
echo“”
}
sub_offlining_users_immediate(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“sqlplus/nolog”
connsys/oracle_4U@$v_dbnameassysdba
setechooff
setfeedbackoff
selectinstance_numberfromv\$instance;
altertablespaceusersofflineimmediate;
quit
!
fi
echo””
}
sub_offlining_tbsocp05_test_immediate(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“sqlplus/nolog”
connsys/oracle_4U@$v_dbnameassysdba
setechooff
setfeedbackoff
selectinstance_numberfromv\$instance;
altertablespacetbsocp05_testofflineimmediate;
quit
!
fi
echo””
}
sub_shutdowning_abort(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“/u01/app/oracle/product/11.2.0/dbhome_1/bin/srvctlstopdatabase-d$v_dbname-oabort”
fi
}
sub_altering_default_tablespace(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“sqlplus/nolog”
conn/assysdba
alterdatabasedefaulttablespaceexample;
quit
!
fi
echo“”
}
sub_dropping_users(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
echo“***FROMTHENON:DROP***”
su–oracle-c“sqlplus/nolog”
conn/assysdba
dropusershcascade;
dropuseroecascade;
droptablespaceusersincludingcontentsanddatafiles;
quit
!
fi
echo””
}
##
##0.2.3DatabaseSQLOperationEnd
##0.2.4DatabaseRMANOperationBegin
##
#sub_backingup_controlfile_nocataloghas$1
sub_backingup_controlfile_nocatalog(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“rmantargetsys/oracle_4U@$v_dbname”
backuptag“$1″currentcontrolfile;
quit
!
fi
echo“”
}
sub_deleting_backup_controlfile_nocatalog(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“rmantargetsys/oracle_4U@$v_dbname”
deletenopromptbackupofcontrolfile;
deletenopromptcopyofcontrolfile;
!
fi
echo“”
}
sub_resync_catalog(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
v_ip=$(ifconfig|grep’192\.168\.0′|head-n1|cut-d.-f4|cut-d‘‘-f1)
grep‘LABSADD’/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
if[$?=='1']
then
echo””>>/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
echo“rcat=”>>/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
echo”(DESCRIPTION=”>>/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
echo”(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.90)(PORT=1521))”>>/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
echo”(CONNECT_DATA=”>>/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
echo”(SERVER=DEDICATED)”>>/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
echo”(SERVICE_NAME=rcat.example.com)”>>/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
echo”)”>>/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
echo”)”>>/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
echo””>>/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
echo‘#LABSADD’>>/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
fi
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
echo“***ConnectingCatalog***”
su–oracle-c“rmantargetsys/oracle_4U@$v_dbnamecatalogu90/oracle_4U@rcat”
resynccatalog;
!
fi
echo””
}
##
##0.2.4DatabaseRMANOperationEnd
##0.2.5DatabaseSQL/RMANCombinedOperationBegin
##
#sub_onlining_users_nocataloghas$1
sub_onlining_users_nocatalog(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“sqlplus/nolog”
connsys/oracle_4U@$v_dbnameassysdba
selectinstance_numberfromv\$instance;
altertablespaceusersonline;
quit
!
fi
echo””
#rman
echo“***AFTERTABLESPACEONLINE***”
echo“***BACKUPAGAIN***”
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“rmantargetsys/oracle_4U@$v_dbname”
backuptag“$1″tablespaceusers;
!
fi
echo””
}
#sub_offlining_users_nocataloghas$1
sub_offlining_users_nocatalog(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“sqlplus/nolog”
connsys/oracle_4U@$v_dbnameassysdba
selectinstance_numberfromv\$instance;
altertablespaceusersoffline;
quit
!
fi
echo””
#rman
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“rmantargetsys/oracle_4U@$v_dbname”
backuptag“$1″tablespaceusers;
!
fi
echo””
}
#sub_readingwrite_users_nocataloghas$1
sub_readingwrite_users_nocatalog(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“sqlplus/nolog”
connsys/oracle_4U@$v_dbnameassysdba
selectinstance_numberfromv\$instance;
altertablespaceusersreadwrite;
quit
!
fi
echo””
#rman
echo“***AFTERTABLESPACEREWRITE***”
echo“***BACKUPAGAIN***”
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“rmantargetsys/oracle_4U@$v_dbname”
backuptag“$1″tablespaceusers;
!
fi
echo””
}
#sub_readingonly_users_nocataloghas$1
sub_readingonly_users_nocatalog(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“sqlplus/nolog”
connsys/oracle_4U@$v_dbnameassysdba
selectinstance_numberfromv\$instance;
altertablespaceusersreadonly;
quit
!
fi
echo””
#rman
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
su–oracle-c“rmantargetsys/oracle_4U@$v_dbname”
backuptag“$1″tablespaceusers;
!
fi
echo””
}
sub_deleting_early_online_backup_users(){
v_dbname=`cat/home/oracle/dbname|tr-d[:blank:]`
if[-f/u01/app/11.2.0/grid/dbs/hc_+ASM1.dat]
then
echo“***DELETETHEEARLYONLINEBACKUPOFUSERS***”
echo“***DELETETHEEARLYREADWRITEBACKUPOFUSERS***”
su–oracle-c“rmantargetsys/oracle_4U@$v_dbname”
deletenopromptbackupoftablespaceusers;
deletenopromptcopyoftablespaceusers;
!
sub_deleting_backup_controlfile_nocatalog
fi
echo””
}
##
##0.2.5DatabaseSQL/RMANCombinedOperationEnd
###0.2DatabaseOperationEnd
####0SubprogramsEnd
####

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MySQL在Web應用中的主要作用是存儲和管理數據。 1.MySQL高效處理用戶信息、產品目錄和交易記錄等數據。 2.通過SQL查詢,開發者能從數據庫提取信息生成動態內容。 3.MySQL基於客戶端-服務器模型工作,確保查詢速度可接受。

InnoDB使用redologs和undologs確保數據一致性和可靠性。 1.redologs記錄數據頁修改,確保崩潰恢復和事務持久性。 2.undologs記錄數據原始值,支持事務回滾和MVCC。

MySQL是一種開源的關係型數據庫管理系統,主要用於快速、可靠地存儲和檢索數據。其工作原理包括客戶端請求、查詢解析、執行查詢和返回結果。使用示例包括創建表、插入和查詢數據,以及高級功能如JOIN操作。常見錯誤涉及SQL語法、數據類型和權限問題,優化建議包括使用索引、優化查詢和分錶分區。

MySQL在數據庫和編程中的地位非常重要,它是一個開源的關係型數據庫管理系統,廣泛應用於各種應用場景。 1)MySQL提供高效的數據存儲、組織和檢索功能,支持Web、移動和企業級系統。 2)它使用客戶端-服務器架構,支持多種存儲引擎和索引優化。 3)基本用法包括創建表和插入數據,高級用法涉及多表JOIN和復雜查詢。 4)常見問題如SQL語法錯誤和性能問題可以通過EXPLAIN命令和慢查詢日誌調試。 5)性能優化方法包括合理使用索引、優化查詢和使用緩存,最佳實踐包括使用事務和PreparedStatemen

選擇MySQL的原因是其性能、可靠性、易用性和社區支持。 1.MySQL提供高效的數據存儲和檢索功能,支持多種數據類型和高級查詢操作。 2.採用客戶端-服務器架構和多種存儲引擎,支持事務和查詢優化。 3.易於使用,支持多種操作系統和編程語言。 4.擁有強大的社區支持,提供豐富的資源和解決方案。

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。MySQL以其高性能、可扩展性和跨平台支持著称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

MySQL適合小型和大型企業。 1)小型企業可使用MySQL進行基本數據管理,如存儲客戶信息。 2)大型企業可利用MySQL處理海量數據和復雜業務邏輯,優化查詢性能和事務處理。

MySQL索引基数对查询性能有显著影响:1.高基数索引能更有效地缩小数据范围,提高查询效率;2.低基数索引可能导致全表扫描,降低查询性能;3.在联合索引中,应将高基数列放在前面以优化查询。
