備份一張表一般用create 備份表 as select * from 原表;
十余年的阿克陶網站建設經驗,針對設計、前端、開發、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。網絡營銷推廣的優勢是能夠根據用戶設備顯示端的尺寸不同,自動調整阿克陶建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優雅布局與設計,從而大程度地提升瀏覽體驗。成都創新互聯從事“阿克陶網站設計”,“阿克陶網站推廣”以來,每個客戶項目都認真落實執行。
如果不想要這個備份,直接運行
drop table 備份表;
就可以,沒有回退的說法。
本文檔旨在提供指南和核對清單,用于將之前升級的數據庫從Oracle12c降級回以前的版本:11.2.0.3,11.2.0.2,11.1.0.7必須加以說明的是,將數據庫實例從當前版本降級到升級前的版本時,數據庫不會返回到升級前的完全相同狀態。根據所涉及的版本,升級過程會進行不可逆的更改。用戶使用降級過程可以打開和訪問以前版本的數據庫實例。這通常便已足夠。可能需要采取其他更正操作(例如卸載/重新安裝或重新升級到當前補丁集級別來解決降級后的遺留問題。如果目標是讓實例返回與升級前完全相同的狀態,則還應使用包括完全恢復到升級前狀態在內的其他過程。本文中討論的過程是基于腳本的降級。本文不介紹使用導出/導入、數據泵或其他方法將數據從一個版本移動到另一個版本。您所降級到的版本的Oracle二進制文件,在開始降級過程之前應該在服務器上可用/已安裝。如果您卸載了要降級到的Oracle可執行文件,請重新安裝Oracle二進制文件到正確的版本/補丁程序級別以降級。此過程旨在降級已成功升級到12c的數據庫,并非用于從失敗的升級退回。您只能降級到升級前所用的版本和補丁程序級別。直接升級可以在版本10.2.0.5、11.1.0.7或版本11.2.0.2及更高版本上執行。可以對這些版本中除10.2.0.5之外的版本進行降級。例如,如果通過應用中間補丁程序11.1.0.7從Oracle11.1.0.6升級到Oracle12c(12.1.0),則不能降級到Oracle11.1.0.6。降級只能對直接升級版本執行。例外:雖然可以對10.2.0.5直接升級,但降級不適用于10.2.0.5。這是因為在升級過程中,compatible參數已設置為最低11.0.0。這使得無法降級到10.2.0.5。可以降級的版本為11.1.0.7、11.2.0.2、11.2.0.3或更高版本。如果有任何補丁程序應用到了從升級后的主目錄運行的源數據庫,則需要先回退,然后才能開始降級過程。卸載和回退補丁程序的步驟記錄在所涉及補丁程序的自述文件中。未能卸載和回退補丁程序可能會導致無法降級,包括無法重新驗證字典對象。Exadata捆綁補丁程序示例,其過程為:卸載補丁程序示例:$opatchauto/u01/app/oracle/patches/14103267-rollback回退任何在補丁程序應用過程中應用的SQL:示例:SQL@rdbms/admin/catbundle_EXA__ROLLBACK.sql,用于回退SQL更改。解決方案降級前步驟-XMLDB組件在12c中是必需的。在升級到12c期間,將安裝XMLDB組件(如果未安裝)。從12c降級將刪除安裝的XDB組件-EnterpriseManager不支持降級。在降級之前,請重新配置OracleEM控件。請參閱OracleDatabaseUpgradeGuide12cRelease1(12.1)E17642-106DowngradingOracleDatabasetoanEarlierRelease6.6.5RestoringOracleEnterpriseManagerafterDowngradingOracleDatabase-升級到12c期間,將刪除DatabaseControl資料檔案庫。降級之后,請重新配置DBControl。Note870877.1HowToSaveOracleEnterpriseManagerDatabaseControlDataBeforeUpgradingTheSingleInstanceDatabaseToOtherRelease?Note876353.1HowToRestoreTheOracleEnterpriseManagerDataToDowngradeTheSingleInstanceDatabaseToPrevious/SourceRelease?-compatible參數不能已經更改到12.1.0。-禁用DataVault(如果已啟用)。Note803948.1HowToUninstallOrReinstallDatabaseVaultin11g(UNIX)Note453902.1EnablingandDisablingOracleDatabaseVaultinWINDOWS-如果數據庫使用OracleLabelSecurity,則在新OracleDatabase12cOracle主目錄中運行OracleLabelSecurity(OLS)預處理降級olspredowngrade.sql腳本(在$ORACLE_HOME/rdbms/admin上提供)。-時區版本應相同。-取消設置并指向12c主目錄的ORA_TZFILE(如果已設置)。-如果數據庫上有OracleApplicationExpress,則必須將apxrelod.sql文件從OracleDatabase12c$ORACLE_HOME/apex/目錄復制到Oracle主目錄之外的目錄,例如系統上的臨時目錄以稍后執行。-如果基于固定對象創建了對象,則刪除這些對象以避免可能的ORA-00600錯誤。您可以在降級之后重新創建這些對象。-如果降級集群數據庫,則徹底關閉實例并將CLUSTER_DATABASE初始化參數更改為FALSE。降級之后,必須將此參數設置回TRUE。滿足以上先決條件之后,可以繼續進行降級。數據庫的降級步驟1)確保所有數據庫組件有效。只能從成功升級的數據庫執行降級。要驗證數據庫組件狀態,請執行以下查詢以SYS用戶身份連接到數據庫colcomp_idformata10colcomp_nameformata30colversionformata10colstatusformata8selectsubstr(comp_id,1,15)comp_id,substr(comp_name,1,30)comp_name,substr(version,1,10)version,statusfromdba_registry2)驗證沒有屬于sys/system的無效對象selectowner,count(object_name)"Invalidobjectcount"fromdba_objectswherestatus!='VALID'andownerin('SYS','SYSTEM')groupbyowner;如果計數為零,則可以繼續降級。如果有無效對象,則執行utlrp.sql多次,如果對象無法解析為有效狀態,則不能繼續降級。建立SR或在DBA社區上發帖以尋求幫助。或者,對于1和2,運行以下腳本:Note556610.1ScripttoCollectDBUpgrade/MigrateDiagnosticInformation(dbupgdiag.sql)3)關閉數據庫Shutdownimmediate4)對12c數據庫做備份5)以降級模式啟動數據庫Startupdowngrade;6)執行降級腳本SqlSpooldowngrade.logSql@$ORACLE_HOME/rdbms/admin/catdwgrd.sql注:$ORACLE_HOME應指向12c主目錄catdwgrd.sql腳本將數據庫中的所有組件降級到支持的主版本或補丁集版本(您最初升級時的版本)SqlspooloffSqlshutdownimmediateExitSQLPlusSqlexit;7)如果操作系統為LINUX/UNIX:將以下環境變量更改為要降級到的源數據庫:ORACLE_HOMEPATH編輯/etc/oratabor/var/opt/oracle/oratab以更改將數據庫映射到源數據庫Oracle主目錄如果操作系統是Windows,則完成以下步驟:a.停止所有Oracle服務,包括OracleDatabase12c數據庫的OracleServiceSIDOracle服務,其中SID是實例名稱。例如,如果SID為ORCL,則在命令行提示符中輸入以下內容:C:\NETSTOPOracleServiceORCLb.在命令提示符下,通過運行ORADIM命令刪除Oracle服務。如果出現提示,則輸入此Windows系統上活動標準用戶帳戶的口令。例如,如果SID為ORCL,則輸入以下命令:C:\ORADIM-DELETE-SIDORCLc.在命令提示符下,使用ORADIM命令創建要降級的數據庫的Oracle服務。C:\ORADIM-NEW-SIDSID-INTPWDPASSWORD-MAXUSERSUSERS-STARTMODEAUTO-PFILEORACLE_HOME\DATABASE\INITSID.ORA8)還原配置文件將配置文件(口令文件、參數文件等)還原到降級版本的ORACLE_HOME。9)如果這是OracleRAC數據庫,則執行以下命令以將數據庫修改為單實例模式:SETCLUSTER_DATABASE=FALSE10)從降級版本$ORACLE_HOME/rdbms/admin目錄執行catrelod腳本。啟動sqlplus,以具有sysdba權限的用戶SYS身份連接到數據庫實例,然后以升級模式啟動數據庫::cd$ORACLE_HOME/rdbms/admin:sqlplussqlconnectsysassysdbasqlstartupupgradesqlspoolcatrelod.logsql@?/rdbms/admin/catrelod.sqlsqlspooloffcatrelod.sql腳本在降級的數據庫中重新加載各個數據庫組件的合適版本。11)運行utlrp.sql腳本:SQL@utlrp.sqlSqlexit;utlrp.sql腳本重新編譯先前處于INVALID狀態的所有現有PL/SQL模塊,例如package、procedure、type等。12)檢查已降級數據庫的狀態:Note556610.1ScripttoCollectDBUpgrade/MigrateDiagnosticInformation(dbupgdiag.sql)此sql腳本是一組查詢語句,用于提供用戶友好的輸出,以在升級前后診斷數據庫的狀態。腳本將創建名為db_upg_diag__.log的文件。13)降級之后,可能在sys用戶下發現無效的QT視圖。這是因為視圖已從基表中選擇了錯誤的列。您需要重新創建這些視圖。請參閱說明:Note1520209.1QT_*BUFERViewsInvalidafterdowngradefrom12C降級后步驟:1)如果您是降級到OracleDatabase11g版本1(11.1.0.7)并且數據庫中有OracleApplicationExpress,則轉到您將apxrelod.sql腳本復制到的目錄(在降級前步驟中)。運行apxrelod.sql腳本以手動重新加載OracleApplicationExpress:SQL@apxrelod.sql運行apxrelod.sql腳本以避免程序包APEX_030200.WWV_FLOW_HELP由于以下錯誤而成為INVALID狀態:PLS-00201:identifier'CTX_DDL'mustbedeclared2)如果數據庫中啟用了OracleLabelSecurity,則執行以下腳本a.從OracleDatabase12c的Oracle主目錄下將olstrig.sql腳本復制到要將數據庫降級到的版本的Oracle主目錄。b.從降級到的版本的Oracle主目錄,運行olstrig.sql以在表上使用OracleLabelSecurity策略重新創建DML觸發器:SQL@olstrig.sql3)如果降級集群數據庫,則必須運行以下命令以降級OracleClusterwaredatabase配置:$srvctldowngradedatabase-ddb-unique-name-ooraclehome-tto_version其中db-unique-name是數據庫名稱(而非實例名稱),oraclehome是已降級數據庫的舊Oracle主目錄的位置,to_version是數據庫所降級到的數據庫版本
建議根據補丁里面的README.html信息安裝回退,出問題后能準確定位。
本文檔旨在提供指南和核對清單,用于將之前升級的數據庫從 Oracle 12c 降級回以前的版本:11.2.0.3, 11.2.0.2, 11.1.0.7
必須加以說明的是,將數據庫實例從當前版本降級到升級前的版本時,數據庫不會返回到升級前的完全相同狀態。根據所涉及的版本,升級過程會進行不可逆的更改。用戶使用降級過程可以打開和訪問以前版本的數據庫實例。這通常便已足夠。
可能需要采取其他更正操作(例如卸載/重新安裝或重新升級到當前補丁集級別來解決降級后的遺留問題。如果目標是讓實例返回與升級前完全相同的狀態,則還應使用包括完全恢復到升級前狀態在內的其他過程。
本文中討論的過程是基于腳本的降級。本文不介紹使用導出/導入、數據泵或其他方法將數據從一個版本移動到另一個版本。
您所降級到的版本的 Oracle 二進制文件,在開始降級過程之前應該在服務器上可用/已安裝。如果您卸載了要降級到的 Oracle 可執行文件,請重新安裝 Oracle 二進制文件到正確的版本/補丁程序級別以降級。
此過程旨在降級已成功升級到 12c 的數據庫,并非用于從失敗的升級退回。您只能降級到升級前所用的版本和補丁程序級別。
直接升級可以在版本 10.2.0.5、11.1.0.7 或版本 11.2.0.2 及更高版本上執行。可以對這些版本中除 10.2.0.5 之外的版本進行降級。
例如,如果通過應用中間補丁程序 11.1.0.7 從 Oracle 11.1.0.6 升級到 Oracle 12c (12.1.0),則不能降級到 Oracle 11.1.0.6。降級只能對直接升級版本執行。
例外:
雖然可以對 10.2.0.5 直接升級,但降級不適用于 10.2.0.5。
這是因為在升級過程中,compatible 參數已設置為最低 11.0.0。這使得無法降級到 10.2.0.5。可以降級的版本為 11.1.0.7、11.2.0.2、11.2.0.3 或更高版本。
如果有任何補丁程序應用到了從升級后的主目錄運行的源數據庫,則需要先回退,然后才能開始降級過程。
卸載和回退補丁程序的步驟記錄在所涉及補丁程序的自述文件中。
未能卸載和回退補丁程序可能會導致無法降級,包括無法重新驗證字典對象。
Exadata 捆綁補丁程序示例,其過程為:
卸載補丁程序
示例: $ opatch auto /u01/app/oracle/patches/14103267 -rollback
回退任何在補丁程序應用過程中應用的 SQL:
示例: SQL @rdbms/admin/catbundle_EXA_數據庫 SID_ROLLBACK.sql,用于回退 SQL 更改。
解決方案
降級前步驟
- XML DB 組件在 12c 中是必需的。
在升級到 12c 期間,將安裝 XML DB 組件(如果未安裝)。
從 12c 降級將刪除安裝的 XDB 組件
- Enterprise Manager 不支持降級。在降級之前,請重新配置 Oracle EM 控件。請參閱
Oracle Database Upgrade Guide 12c Release 1 (12.1) E17642-10
6 Downgrading Oracle Database to an Earlier Release
6.6.5 Restoring Oracle Enterprise Manager after Downgrading Oracle Database
- 升級到 12c 期間,將刪除 Database Control 資料檔案庫。降級之后,請重新配置 DB Control。
Note 870877.1 How To Save Oracle Enterprise Manager Database Control Data Before Upgrading The Single Instance Database To Other Release ?
Note 876353.1 How To Restore The Oracle Enterprise Manager Data To Downgrade The Single Instance Database To Previous/Source Release ?
- compatible 參數不能已經更改到 12.1.0。
- 禁用 Data Vault(如果已啟用)。
Note 803948.1 How To Uninstall Or Reinstall Database Vault in 11g (UNIX)
Note 453902.1 Enabling and Disabling Oracle Database Vault in WINDOWS
- 如果數據庫使用 Oracle Label Security,則在新 Oracle Database 12c Oracle 主目錄中運行 Oracle Label Security (OLS) 預處理降級 olspredowngrade.sql 腳本(在 $ORACLE_HOME/rdbms/admin 上提供)。
- 時區版本應相同。
- 取消設置并指向 12c 主目錄的 ORA_TZFILE(如果已設置)。
- 如果數據庫上有 Oracle Application Express,則必須將 apxrelod.sql 文件從 Oracle Database 12c $ORACLE_HOME/apex/ 目錄復制到 Oracle 主目錄之外的目錄,例如系統上的臨時目錄以稍后執行。
- 如果基于固定對象創建了對象,則刪除這些對象以避免可能的 ORA-00600 錯誤。您可以在降級之后重新創建這些對象。
- 如果降級集群數據庫,則徹底關閉實例并將 CLUSTER_DATABASE 初始化參數更改為 FALSE。降級之后,必須將此參數設置回 TRUE。
滿足以上先決條件之后,可以繼續進行降級。
數據庫的降級步驟
1) 確保所有數據庫組件有效。只能從成功升級的數據庫執行降級。要驗證數據庫組件狀態,請執行以下查詢
以 SYS 用戶身份連接到數據庫
col comp_id format a10
col comp_name format a30
col version format a10
col status format a8
select substr(comp_id,1,15) comp_id,substr(comp_name,1,30) comp_name,substr(version,1,10) version,status from dba_registry
2) 驗證沒有屬于 sys/system 的無效對象
select owner, count(object_name) "Invalid object count" from dba_objects where status!='VALID' and owner in ('SYS','SYSTEM') group by owner;
如果計數為零,則可以繼續降級。
如果有無效對象,則執行 utlrp.sql 多次,如果對象無法解析為有效狀態,則不能繼續降級。建立 SR 或在 DBA 社區上發帖以尋求幫助。
或者,對于 1 和 2,運行以下腳本:
Note 556610.1 Script to Collect DB Upgrade/Migrate Diagnostic Information (dbupgdiag.sql)
3) 關閉數據庫
Shutdown immediate
4) 對 12c 數據庫做備份
5) 以降級模式啟動數據庫
Startup downgrade;
6) 執行降級腳本
Sql Spool downgrade.log
Sql @$ORACLE_HOME/rdbms/admin/catdwgrd.sql
注:
$ORACLE_HOME 應指向 12c 主目錄
catdwgrd.sql 腳本將數據庫中的所有組件降級到支持的主版本或補丁集版本(您最初升級時的版本)
Sql spool off
Sql shutdown immediate
Exit SQL Plus
Sql exit;
7) 如果操作系統為 LINUX/UNIX:
將以下環境變量更改為要降級到的源數據庫:
ORACLE_HOME
PATH
編輯 /etc/oratab or /var/opt/oracle/oratab 以更改
將數據庫映射到源數據庫 Oracle 主目錄
如果操作系統是 Windows,則完成以下步驟:
a. 停止所有 Oracle 服務,包括 Oracle Database 12c 數據庫的 OracleServiceSID Oracle 服務,其中 SID 是實例名稱。
例如,如果 SID 為 ORCL,則在命令行提示符中輸入以下內容:
C:\ NET STOP OracleServiceORCL
b. 在命令提示符下,通過運行 ORADIM 命令刪除 Oracle 服務。如果出現提示,則輸入此 Windows 系統上活動標準用戶帳戶的口令。
例如,如果 SID 為 ORCL,則輸入以下命令:
C:\ ORADIM -DELETE -SID ORCL
c. 在命令提示符下,使用 ORADIM 命令創建要降級的數據庫的 Oracle 服務。
C:\ ORADIM -NEW -SID SID -INTPWD PASSWORD -MAXUSERS USERS
-STARTMODE AUTO -PFILE ORACLE_HOME\DATABASE\INITSID.ORA
8) 還原配置文件
將配置文件(口令文件、參數文件等)還原到降級版本的 ORACLE_HOME。
9) 如果這是 Oracle RAC 數據庫,則執行以下命令以將數據庫修改為單實例模式:
SET CLUSTER_DATABASE=FALSE
10) 從降級版本 $ORACLE_HOME/rdbms/admin 目錄執行 catrelod 腳本。
啟動 sqlplus,以具有 sysdba 權限的用戶 SYS 身份連接到數據庫實例,然后以升級模式啟動數據庫:
: cd $ORACLE_HOME/rdbms/admin
: sqlplus
sql connect sys as sysdba
sql startup upgrade
sql spool catrelod.log
sql @?/rdbms/admin/catrelod.sql
sql spool off
catrelod.sql 腳本在降級的數據庫中重新加載各個數據庫組件的合適版本。
11) 運行 utlrp.sql 腳本:
SQL @utlrp.sql
Sql exit;
utlrp.sql 腳本重新編譯先前處于 INVALID 狀態的所有現有 PL/SQL 模塊,例如 package、procedure、type 等。
12) 檢查已降級數據庫的狀態:
Note 556610.1 Script to Collect DB Upgrade/Migrate Diagnostic Information (dbupgdiag.sql)
此 sql 腳本是一組查詢語句,用于提供用戶友好的輸出,以在升級前后診斷數據庫的狀態。腳本將創建名為 db_upg_diag_sid_時間戳.log 的文件。
13) 降級之后,可能在 sys 用戶下發現無效的 QT 視圖。這是因為視圖已從基表中選擇了錯誤的列。您需要重新創建這些視圖。
請參閱說明:
Note 1520209.1 QT_*BUFER Views Invalid after downgrade from 12C
降級后步驟:
1)如果您是降級到 Oracle Database 11g 版本 1 (11.1.0.7) 并且數據庫中有 Oracle Application Express,則轉到您將 apxrelod.sql 腳本復制到的目錄(在降級前步驟中)。
運行 apxrelod.sql 腳本以手動重新加載 Oracle Application Express:
SQL @apxrelod.sql
運行 apxrelod.sql 腳本以避免程序包 APEX_030200.WWV_FLOW_HELP 由于以下錯誤而成為 INVALID 狀態:
PLS-00201: identifier 'CTX_DDL' must be declared
2) 如果數據庫中啟用了 Oracle Label Security,則執行以下腳本
a. 從 Oracle Database 12c 的 Oracle 主目錄下將 olstrig.sql 腳本復制到要將數據庫降級到的版本的 Oracle 主目錄。
b. 從降級到的版本的 Oracle 主目錄,運行 olstrig.sql 以在表上使用 Oracle Label Security 策略重新創建 DML 觸發器:
SQL @olstrig.sql
3) 如果降級集群數據庫,則必須運行以下命令以降級 Oracle Clusterware database 配置:
$ srvctl downgrade database -d db-unique-name -o oraclehome -t to_version
其中 db-unique-name 是數據庫名稱(而非實例名稱),oraclehome 是已降級數據庫的舊 Oracle 主目錄的位置,to_version 是數據庫所降級到的數據庫版本
沒有在 commit 提交 ,可以直接寫ROLLBACK 閃回 回來就行 不需要閃回時間點
網站題目:oracle怎么回退補丁,oracle補丁升級
網頁鏈接:http://vcdvsql.cn/article4/dsdgcoe.html
成都網站建設公司_創新互聯,為您提供企業建站、網站設計公司、軟件開發、微信公眾號、面包屑導航、全網營銷推廣
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯