Ubuntu環境下Oracle數據庫升級詳細步驟
升級前必須對現有數據庫進行完整備份,確保數據可恢復。推薦使用Oracle RMAN工具(推薦方式)或expdp/impdp工具:
rman target /
RUN {
ALLOCATE CHANNEL c1 TYPE DISK;
BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;
RELEASE CHANNEL c1;
}
expdp username/password@old_sid schemas=schema_name directory=DATA_PUMP_DIR dumpfile=schema_name.dmp logfile=expdp_schema_name.log
/etc/sysctl.conf):fs.file-max = 6815744
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
執行sysctl -p使參數生效;/etc/security/limits.conf):oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
sudo apt update
sudo apt install alien libaio1 unixodbc
sudo alien -dv oracle-package.rpm
sudo dpkg --install oracle-package.deb
編輯~/.bash_profile(或~/.bashrc),添加以下變量(根據實際路徑調整):
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1 # 新版本Oracle Home
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG='AMERICAN_AMERICA.AL32UTF8'
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH
使配置生效:
source ~/.bash_profile
使用SQL*Plus以SYSDBA身份登錄,執行立即關閉:
sqlplus / as sysdba
SQL> SHUTDOWN IMMEDIATE;
SQL> EXIT;
sqlplus / as sysdba
SQL> STARTUP UPGRADE;
dbua
按照向導步驟操作,DBUA會自動處理預升級檢查、腳本執行和后升級配置;@?/rdbms/admin/catalog.sql # 創建數據字典視圖
@?/rdbms/admin/catproc.sql # 創建PL/SQL包
@?/rdbms/admin/utlrp.sql # 編譯無效對象
退出SQL*Plus并重啟數據庫:
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
驗證版本信息:
SELECT * FROM v$version;
SELECT * FROM dba_registry;
SELECT COUNT(*) FROM dba_objects WHERE status = 'INVALID';
SELECT SYSDATE FROM dual;);修改應用程序配置文件中的數據庫連接字符串,指向新版本數據庫的SID或Service Name(如從old_db改為new_db)。