<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Linux系統Oracle常見操作

      一、 登錄

      1.1    登錄默認數據庫

       

      首先切換到oracle用戶,用數據庫默認管理員登錄。

      [root@tsm-zh01 ~]# su – oracle

      [oracle@redhat ~]$ lsnrctl start              #開啟監聽

      [oracle@tsm-zh01 ~]$ sqlplus / as sysdba    #sqlplus  用戶名/密碼

      SQL> startup;                                     #打開數據庫

      1.2數據庫切換

      1.2.1 Oracle實例進程顯示

      [oracle@tsm-zh01 ~]$   ps -ef  | grep ora_dbw0_$ORACLE_SID

      oracle    5956     1  0 Sep21 ?        00:16:18 ora_dbw0_tsmdb1

      oracle    5958     1  0 Sep21 ?        00:18:05 ora_dbw0_tsmcnnt1

      oracle    5972     1  0 Sep21 ?        00:22:59 ora_dbw0_tsmcity1

       

      1.2.2進行數據庫實例切換

      在oracle用戶下輸入

      export ORACLE_SID=實例名

      1.2.3查看當前數據庫實例

      SQL> select instance_name from v$instance;

       

      INSTANCE_NAME

      --------------------------------

      tsmcity1

       

      1.2.4查看所有啟動實例

       [oracle@tsm-zh01 ~]$ ps -ef|grep smon    #smon : system monitor

      R1.2.5查看所有實例

      未啟動的可以

      ps -elf | grep ora_ ( 對比其后接的SID)

      lsnrctl status

      1.3開啟和關閉歸檔

      1.3.1 查看當前歸檔模式

      SQL> archive log list;Database log mode              No Archive ModeAutomatic archival             DisabledArchive destination            USE_DB_RECOVERY_FILE_DESTOldest online log sequence     228Current log sequence           230

      1.3.2 關閉數據庫到mount

      注意

      如果是數據庫集群,不能單獨用shutdown immediate;關閉數據庫,必須進入到grid用戶模式下用srvctl stop database -d  實例名 統一關閉實例;

      另外startup mountalterdatabase archivelog;操作,每臺集群都要操作,重啟數據庫的時候,直接在oracle用sqlplus按順序啟動。

       

      SQL> shutdown immediate;

      Database closed.

      Database dismounted.

      ORACLE instance shut down.

       SQL> startup mount;ORACLE instance started. Total System Global Area 3423965184 bytesFixed Size                  2180544 bytesVariable Size            2013268544 bytesDatabase Buffers         1392508928 bytesRedo Buffers               16007168 bytesDatabase mounted.

      1.3.3 啟動或關閉歸檔

      • 啟動歸檔

      如果數據庫一開始沒有設置日志模式,需要先設置日志模式

      Alter system set log_archive_start=true scope=spfile; 設置歸檔日志方式為歸檔模式

      SQL> alter database archivelog;  Database altered.

      • 設置歸檔路徑

      alter system set log_archive_dest_1='location=/ora_arch';

      • 關閉歸檔

      SQL> alter database noarchivelog;Database altered.

      • 關閉歸檔的時候可能會報閃回報錯,可以查一下閃回的狀態,關閉后可以正常關閉歸檔

      ERROR at line 1:

      ORA-38774: cannot disable media recovery - flashback database is enabled

      • 關閉閃回

      SQL> select flashback_on from v$database;

      FLASHBACK_ON

      ------------------

      YES

       

      SQL> alter database flashback off;

      Database altered.

      1.3.4 重新啟動數據庫

      查看數據庫實例狀態

      select instance_name,status from v$instance;

      INSTANCE_NAME     STATUS
      ------------------------------------------------
      linuxidc      MOUNTED

       

      SQL> alter database open;Database altered.

       

      2.2 rman管理數據庫

      2.2.1 在oracle下直接鏈接庫

      [oracle@tsm-zh01 ~]$ export ORACLE_SID=orcl   #如果本機有多個數據庫,先操作這個

       

      [oracle@tsm-zh01 ~]$ rman target /

       

      Recovery Manager: Release 11.2.0.4.0 - Production on Wed Dec 12 10:53:08 2018

       

      Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

       

      connected to target database: TSMCITY (DBID=2201482424)

       

      RMAN>

      2.2.2 進入rman后再連接庫

      [oracle@tsm-zh01 ~]$ rman

       

      Recovery Manager: Release 11.2.0.4.0 - Production on Wed Dec 12 10:53:25 2018

       

      Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

       

      RMAN> connect target /

       

      connected to target database: TSMCITY (DBID=2201482424)

       

      RMAN>

      2.3 rman刪除歸檔日志

      公司所有的歸檔(tsmcnnt、tsmdb、tsmcity)都在tsmcity的歸檔文件夾黎。

      2.3.1操作系統刪除(需要和數據庫同步)

      在controlfile中記錄著每一個archivelog的相關信息當我們在OS下把這些物理文件delete掉或異常變動后,在controlfile中仍然記錄著這些archivelog的信息,當我們手工清除archive目錄下的文件后,這些記錄并沒有被我們從controlfile中清除掉,也就是oracle并不知道這些文件已經不存在了!這時候我們要做手工的清除。

         1、物理刪除archivelog。在系統里面找到歸檔日志文件刪除。如果是陣列用grid用戶asmcmd命令進入到陣列刪除。
          2、進入RMAN 。connect target /   沒有分號
          3、crosscheck archivelog all;    #查看歸檔日志路徑檢查控制文件和實際物理文件的差別
          4、delete expired archivelog all;  檢查控制文件和實際物理文件的差別

      2.3.2 rman命令刪除

      1、DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-30'; 刪除30天以前的所有歸檔,時間戳是以歸檔結束計算

      2、delete force noprompt archivelog until time 'sysdate-2' ; 刪除2天前的歸檔(強制),force可選項;時間戳是以歸檔開始計算

       

      在正常情況才用第一種情況進行刪除,如果采用第二種進行刪除可能會導致部分操作歸檔丟失。

       

      3、其他刪除命令

      RMAN>delete archivelog until sequence 123; 

      RMAN>delete archivelog all completed before 'sysdate - 7';   

      RMAN>delete archivelog all completed before 'sysdate - 1'; 

      RMAN>delete archivelog from time 'sysdate-1';

      2.4 集群管理

      集群默認用grid 賬戶管理

       

      lsnrctl status (在grid下使用,可以檢測oracle偵聽端口是否打開。)

      [root@tsm-zh01 ~]# su - grid

      [grid@tsm-zh01 ~]$ asmcmd

      ASMCMD>

       

      2.4.1單點集群停機:

      有時候我們需要單獨關閉一個節點做維護, 那么單獨關閉

      在需要維護的節點Server 上,用root登錄: 

      輸入crsctl stop crs  或者 /etc/init.d/init.crs   stop 

       

      [root@tsm-zh02 ~]# crsctl stop crs

      CRS-2677: Stop of 'ora.gpnpd' on 'tsm-zh02' succeeded

      CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'tsm-zh02' has completed

      CRS-4133: Oracle High Availability Services has been stopped.

      [root@tsm-zh02 ~]crsctl start crs 重啟即可

      2.4.2 RAC 數據遷移(ASM 磁盤組)

      • 查看系統表狀態

      SQL> select file_name,online_status,tablespace_name from dba_data_files;

       

      FILE_NAME

      --------------------------------------------------------------------------------

      ONLINE_STATUS  TABLESPACE_NAME

      -------------- ------------------------------------------------------------

      +TSMCITY/tsmcity/datafile/users.290.855748279

      ONLINE         USERS

       

      +TSMCITY/tsmcity/datafile/undotbs1.292.855748279

      ONLINE         UNDOTBS1

       

      +TSMCITY/tsmcity/datafile/sysaux.272.855748279

      ONLINE         SYSAUX

      • 關閉RAC上涉及的數據庫

      srvctl stop database -d XXX

      • 將RAC1啟動到mount狀態

      如果用戶將原來的表空間建立在RAC1上,則在RAC1上進行操作;如果是RAC2,就到RAC2上進行操作

      SQL>startup mount;

      這一步非常重要,否則會提示找不到之前的數據表文件

      • 通過rman 拷貝文件到磁盤組

      如果用戶將原來的表空間建立在RAC1上,則在RAC1上進行操作;如果是RAC2,就到RAC2上進行操作

      RMAN> connect target /

      connected to target database: TSMCITY (DBID=2201482424)

      RMAN> copy datafile '/home/oracle/test.dbf' to '+data';

      Starting backup at 2017/09/17 02:13:03

      using target database control file instead of recovery catalog

      allocated channel: ORA_DISK_1

      channel ORA_DISK_1: SID=36 instance=devdb1 device type=DISK

      channel ORA_DISK_1: starting datafile copy

      input datafile file number=00006 name=/home/oracle/test.dbf

      output file name=+DATA/devdb/datafile/users.273.954900787 tag=TAG20170917T021305 RECID=3 STAMP=954900786

      channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

      Finished backup at 2017/09/17 02:13:07

       

      Starting Control File and SPFILE Autobackup at 2017/09/17 02:13:07

      piece handle=+FLASH/devdb/autobackup/2017_09_17/s_954900552.304.954900789 comment=NONE

      Finished Control File and SPFILE Autobackup at 2017/09/17 02:13:10

      • 拷貝完畢后更改文件名

      SQL>alter database rename file '/home/oracle/test.dbf' to '+DATA/devdb/datafile/USERS.273.954900787';

      • 啟動數據庫集群

      srvctl start database -d XXX

      如果是數據庫集群建議采用如上操作,在grid里面啟動數據庫,采用如下單點操作也可以進行

      #RAC1
      SQL> alter database open;
      Database altered.
      SQL>

      #RAC2
      SQL> startup;

      二、 用戶管理、表空間和授權

      2.1 用戶管理

      2.1.1 創建用戶

      CREATE USER 用戶名 IDENTIFIED BY 密碼 PROFILE DEFAULT DEFAUL T TABLESPACE 表空間 ACCOUNT UNLOCK;

       

      PROFILE DEFAULT:默認的用戶口令限制,比如密碼錯誤次數、密碼鎖定時間。

      ACCOUNT UNLOCK:賬戶是否啟用或者鎖定,默認是啟用。

      2.1.2 刪除用戶

      DROP USER 用戶名 CASCADE;

      若用戶擁有對象,則不能直接刪除,否則將返回一個錯誤值。指定關鍵字cascade,可刪除用戶所有的對象,然后再刪除用戶。

      2.1.3 更改口令

      ALTER USER 用戶名 IDENTIFIED BY 改變的口令;

       

      2.1.4 查詢所有用戶

      SELECT * FROM ALL_USERS;

      2.2 表空間管理

      2.2.1 創建表空間

      CREATE TABLESPACE 表空間名DATAFILE '/路徑/文件名.dbf' SIZE 50M  
      AUTOEXTEND ON   NEXT 50M MAXSIZE 2048M  
      [PERMANENT | TEMPORARY] [EXTENT MANAGEMENT LOCAL | DICTIONARY];

      AUTOEXTEND:自動增長,默認關閉 ;

      NEXT:下次增長的空間;

      MAXSIZE:最大增長空間;

      [PERMANENT | TEMPORARY]永久或者臨時表空間,一般先創建臨時表空間再創建永久表空間

      [EXTENT MANAGEMENT LOCAL | DICTIONARY]:管理方式,默認是本地管理;

      2.2.2 指定用戶表空間

      1、創建用戶并指定表空間:

      CREATE USER 用戶名 IDENTIFIED BY 密碼  DEFAULT TABLESPACE 永久表空間名  TEMPORARY TABLESPACE 臨時表空間; 

       

      2、更改用戶表空間:

      ALTER USER  用戶名 DEFAULT TABLESPACE 表空間名;

      2.2.3 刪除表空間、數據文件

      刪除表空間(先脫機)

      DROP TABLESPACE 表空間名字 INCLUDING CONTENTS AND DATAFILES;

      刪除單個數據文件

      ALTER TABLESPACE TEST_SPACE DROP

      DATAFILE '/DATA/ORACLE/ORADATA/ORCL/TEST2.DBF';  #刪除文件

      2.2.4修改表空間

      1、增加文件:

      ALTER TABLESPACE 表空間名ADD DATAFILE '/路徑/aaa.dbf' SIZE 1000M;

       

      2、修改表空間數據文件尺寸

      ALTER DATABASE  數據庫名 DATAFILE ‘/路徑/AA.DBF’ RESIZE 2048M;

       

      3、表空間屬性

      使表空間聯機|脫機

      ALTER TABLESPACE game ONLINE|OFFLINE;

      使數據文件脫機|連接

      ALTER DATABASE DATAFILE ‘ssss’ OFFLINE|ONLINE;

      使表空間只讀|讀寫

      ALTER TABLESPACE game READ ONLY|WRITE;

       

      2.2.5 表空間查詢

      1、看表空間名稱和狀態

      select tablespace_name,status from user_tablespaces;

       

      2、查詢表空間使用情況

      SET lines 2000

      SET pagesize 2000

       

      SELECT total.tablespace_name,

             Round(total.mb, 2)           AS total_mb,

             Round(total.mb - free.mb, 2) AS used_mb,

             Round(free.mb, 2)            AS free_mb,

             Round(( 1 - free.mb / total.mb ) * 100, 2)

             || '%'                       AS used_pct

      FROM   (SELECT tablespace_name,

                     Sum(bytes) / 1024 / 1024 AS mb

              FROM   dba_free_space

              GROUP  BY tablespace_name) free,

             (SELECT tablespace_name,

                     Sum(user_bytes) / 1024 / 1024 AS mb

              FROM   dba_data_files

              GROUP  BY tablespace_name) total

      WHERE  free.tablespace_name = total.tablespace_name

      ORDER  BY tablespace_name;

      3、查詢表空間的free space

      select tablespace_name, count(*) AS extends,round(sum(bytes) / 1024 / 1024, 2) AS MB,sum(blocks) AS blocks from dba_free_space group BY tablespace_name;

       

      4、查詢表空間的總容量

      select tablespace_name, sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name;

       

      5、查詢表空間使用率

      SELECT total.tablespace_name,

             Round(total.MB, 2)           AS Total_MB,

             Round(total.MB - free.MB, 2) AS Used_MB,

             Round(( 1 - free.MB / total.MB ) * 100, 2)

             || '%'                       AS Used_Pct

      FROM   (SELECT tablespace_name,

                     Sum(bytes) / 1024 / 1024 AS MB

              FROM   dba_free_space

              GROUP  BY tablespace_name) free,

             (SELECT tablespace_name,

                     Sum(bytes) / 1024 / 1024 AS MB

              FROM   dba_data_files

              GROUP  BY tablespace_name) total

      WHERE  free.tablespace_name = total.tablespace_name;

       

      6、表空間數據文件

      SELECT TABLESPACE_NAME, FILE_ID, FILE_NAME,ROUND(BYTES/(1024*1024),0) TOTAL_SPACE FROM DBA_DATA_FILES ORDER BY TABLESPACE_NAME;

       

      2.2.6 用戶授權

      GRANT CONNECT,RESOURCE,DBA TO 用戶名;

      REVOKE  CONNECT,RESOURCE,DBA FROM 用戶名;      #收回權限

      2.27 表空間備份和恢復

      1、脫機備份和恢復(冷備份)

             Shutdown 數據庫后直接復制相關文件即可,如果需要恢復,停機后再復制到原來的路徑,然后開啟數據庫。

      2、聯機備份和恢復(熱備份)

      熱備份的前提是數據庫必須運行在歸檔模式下,而且必須備份的只有數據文件,控制文件、重做日志文件、歸檔日志文件都是靠物理冗余來保護的。

      由于數據文件處于備份狀態時重做日志后臺進程要將這些文件的所有的變化數據塊寫到重做日志文件中,這對重做日志緩沖區和重做日志文件的壓力都增大了,所以需要注意幾下加點:

      •   重做日志緩沖區和重做日志文件適當增大
      •   在聯機備份時,每次只備份一個表空間
      •   在DML最少的時候做備份

       

       

      • 設置數據庫日志模式為歸檔模式

       

      Alter system set log_archive _start=true scope=spfile; 

      上述參數在oracle 10g已經廢棄

      Shutdown immediate;

      Startup mount;

      Alter database archive;

       

      • 開啟數據庫

      既然是聯機備份,數據庫肯定是要保持正常開啟狀態的。

      Alter database open;  

       

      • 備份表空間

       

      Alter tablespace 空間名 begin backup; 執行此命令后,用cp命令復制表空間文件即可(用oracle用戶拷貝,否則文件權限不對,無法恢復)。

      Alter tablespace 空間名 end backup;

      select * from v$backup; 查看是否備份成功

       

      • 重做日志寫入

       

      select group#,sequence#,status,archived from v$log; 查看當前重做日志:

      Alter system archive log current;

      Alter system switch logfile;

      重做日志文件一般有3個,切換3次。

       

      • 如果數據庫某個表空間出現問題,無法正常啟動數據庫,操作如下;

      先將表空間提示的數據文件切換到脫機狀態

      Alter database datafile  10 offline drop;    數字10為系統提示的文件編號;

      Select * from v$recover_file;  查詢是否為編號為10的文件報錯。

      刪除并復制之前備份的文件到表空間文件位置。

      Alter database open;

      • 恢復

      Recover datafile 10;

      Alter datafile 10 online;

      完畢。

      三、 備份和恢復

      3.1 熱備份

      3.2 邏輯備份

      1. EXP和IMP是客戶端工具程序,它們既可以在客戶端使用,也可以在服務端使用。
      2. EXPDP和IMPDP是服務端的工具程序,他們只能在ORACLE服務端使用,不能在客戶端使用。即EXPDP導出的數據只能在服務端。
      3. IMP只適用于EXP導出的文件,不適用于EXPDP導出文件;IMPDP只適用于EXPDP導出的文件,而不適用于EXP導出文件

      3.2.1 exp 和imp

      3.2.2 expdp 和impdp

      3.2.2.1 expdp 導出

      expdp或impdp命令時,可暫不指出用戶名/密碼@實例名 as 身份,然后根據提示再輸入,如:
      expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;

      1、創建邏輯目錄.

      該命令不會在操作系統創建真正的目錄,最好以oracle等管理員創建。

      sql>create directory dpdata1 as '/test/dump';

      查看管理理員目錄(同時查看操作系統是否存在,因為Oracle并不關心該目錄是否存在,如果不存在,則出錯)
      sql>select * from dba_directories;

      2、授權數據庫用戶權限

      給scott用戶賦予在指定目錄的操作權限,最好以system等管理員賦予。
      sql>grant read,write on directory dpdata1 to scott;

      #Scott是數據庫用戶,如果用管理sys去操作,可以不用授權操作,以 \’sys/密碼@實例名 as sysdba\’ 的形式登錄即可。比如\’sys / as sysdba \’

      3、導出數據

      1)按用戶導

       

      expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1 logfile=expdpd.log  version=10.2.0.4

      #Schemas=用戶名,Logfile可以不指定,系統會自動生成

      #version如果指定版本號:則可以再低版本中進行恢復保證兼容性


      2)并行進程parallel

       

      expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott_%U.dmp parallel=4 job_name=scott3

      #注意:dumpfile 參數擁有一個通配符 %U,它指示文件將按需要創建,格式為scott_nn.dmp,其中nn 從 01 開始,然后按需要向上增加,上限為最大線程數。

      Sql>show parameters cpu                            #查看cpu支持的線程數。


      3)按表名導

      expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1

      #默認導出的該用戶名下面的表,如果需要導出其他用戶的表  tables=用戶名.表名


      4)按查詢條件導

      expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20'


      5)按表空間導


      expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example


      6)導整個數據庫

      expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y

       

      7)partfile

       

      expdp partfile=expdp.txt

      文本文件里面可以寫腳本,命令

       

      3.2.2.2 impdp 恢復

      • 導到指定用戶下

       

      impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott

      #即使用戶不存在也可以導入數據,建議先建立用戶在導入數據。


      2)改變表的owner

       

      impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system

      #將表的所有者從scott變為system


      3)導入表空間

       

      impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example


      4)導入數據庫

       

      impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y


      5)追加數據

       

      impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION

       

      3.2.2.3并行操作(PARALLEL) 說明

      您可以通過 PARALLEL 參數為導出使用一個以上的線程來顯著地加速作業。每個線程創建一個單獨的轉儲文件,因此參數 dumpfile 應當擁有和并行度一樣多的項目。您可以指定通配符作為文件名,而不是顯式地輸入各個文件名,例如: 

       

      expdp ananda/abc123 tables=CASES directory=DPDATA1 dumpfile=expCASES_%U.dmp parallel=4 job_name=Cases_Export 

       

      注意:dumpfile 參數擁有一個通配符 %U,它指示文件將按需要創建,格式將為expCASES_nn.dmp,其中nn 從 01 開始,然后按需要向上增加。 

      在并行模式下,狀態屏幕將顯示四個工作進程。(在默認模式下,只有一個進程是可見的)所有的工作進程同步取出數據,并在狀態屏幕上顯示它們的進度。

      分離訪問數據文件和轉儲目錄文件系統的輸入/輸出通道是很重要的。否則,與維護 Data Pump 作業相關的開銷可能超過并行線程的效益,并因此而降低性能。并行方式只有在表的數量多于并行值并且表很大時才是有效的。 

      3.3    冷備份(非歸檔模式)

      拷貝相關的數據文件、歸檔日志、重做日志、控制文件即可,可以保持文件一致性。

       

      connect tigger/sccot as sysdba;

      shutdown immediate;    #先關閉數據庫

      cp d:/test*.dbf d:export     #--cp 文件  目標文件夾    數據文件

      cp d:/test*.ctl d:export   #--控制文件

      cp d:/test*.log d:export   #--日志文件

      startup;

       

      查看控制文件路徑

      select status,name from v$controlfile;

      查看數據文件路徑

      select status,file_name from dba_data_files;

      查看日志文件

      select group#,status,member from v$logfile;

      3.4    RMAN備份和恢復

      3.4.1聯機備份

      1、開啟歸檔

       

      Sql> alter database archivelog;      #開啟歸檔

      Sql>archive log list;                #查看歸檔狀態

       

      2、創建恢復目錄

      一般情況恢復目錄是用另外一臺服務器的數據庫來創建的,以保證當前服務器宕機后,恢復目錄仍然可以使用。

       

      2.1創建恢復用表空間

      #Sqlplus  遠程用戶名/密碼@遠程數據庫名 ;

      Sql>create tablespace  表空間名 datafile ‘路徑’ size 200m autoextend on next 50m maxsize 500m;

      Sql>create user 用戶名 idendified by 密碼 default tablespace 表空間名; #創建用于管理恢復目錄表空間的用戶

      Sql>grant connect,resource,recovery_catalog_owner to 用戶名; #授予用戶管理表空間的權限

      在恢復用表空間中創建恢復目錄

      2.2創建遠程恢復目錄

      rman

      Rman>connect catalog  遠程用戶/密碼@遠程數據庫名;    #用rman 連接到遠程數據庫

      Rman>create catalog;      #創建恢復目錄

       

      #創建完恢復目錄后,在遠程數據庫中登錄用戶,可以查到多了很多數據表信息。

       

      2.3 注冊需要備份的數據庫

      #Rman target /;   #用rman連接需要備份的數據庫

      Rman >connect catalog 用戶名/密碼@遠程數據庫名;

      Rman>register database;    #注冊需要備份的數據庫到恢復目錄

       

      注冊完畢后可以在恢復目錄看到數據庫的注冊信息

       

      3、備份

      3.1 rman參數說明

      http://www.rzrgm.cn/-abm/p/9261034.html

      %c 備份片的拷貝數 
      %d 數據庫名稱 
      %D 位于該月中的第幾天 (DD) 
      %M 位于該年中的第幾月 (MM) 
      %F 一個基于DBID唯一的名稱,這個格式的形式為c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII為該數據庫的DBID,YYYYMMDD為
      日期,QQ是一個1-256的序列 
      %n 數據庫名稱,向右填補到最大八個字符 
      %u 一個八個字符的名稱代表備份集與創建時間 
      %p 該備份集中的備份片號,從1開始到創建的文件數
      %U 一個唯一的文件名,代表%u_%p_%c 
      %s 備份集的號 
      %t 備份集時間戳 
      %T 年月日格式(YYYYMMDD)

      3.2 連接遠程恢復目錄

      在rman連接到本地數據庫之后,必須再遠程連接恢復目錄,這樣才會將備份信息寫入到恢復目錄,否則仍然是nocatlog模式,所有信息值存入到控制文件中。

       

      #rman target /  catalog  用戶名/密碼@遠程數據庫名   #前半部分是登錄到本地,后半部分連接到遠程

      #rman target /

      Rman> connect catalog 遠程用戶名/密碼@遠程數據庫名;

       

      3.3備份

      Rman>backup as compressed backupset database plus archivelog delete all input;

      #plus archivelog 備份的同時備份歸檔日志,包括剛剛運行backup所生成的日志

      #delet all input 刪除所有已備份的的歸檔日志

       

      RMAN>configure channel device type disk format '/home/oracle/oradata/backup/data_%d_%M_%U';

      #設置數據文件備份路徑

       

      RMAN>configure controlfile autobackup format for device type disk to '/home/oracle/oradata/backup/ctl_%d_%M_%F';

      #設置控制文件備份路徑

       

       

      通道備份

      run
      {

      allocate channel ch1 device type disk;

      allocate channel ch2 device type disk;

      backup database format '/home/oracle/oradata/backup/Data_%d_%M_%U'

      plus archivelog format '/home/oracle/oradata/backup/log_%d_%M_%U';

       

      sql ‘alter system archive log current’;   #備份所有的歸檔日志

      release channel ch1;

      release channel ch2;
      }

      報錯 operation disallowed: snapshot control file enqueue unavailable

      錯誤信息

      RMAN> backup current controlfile format '/tmp/xifenfei.ctl';

      Starting backup at 10-JUN-15

      using target database control file instead of recovery catalog

      allocated channel: ORA_DISK_1

      channel ORA_DISK_1: sid=628 instance=orcl1 devtype=DISK

      channel ORA_DISK_1: starting full datafile backupset

      channel ORA_DISK_1: specifying datafile(s) in backupset

      waiting for snapshot control file enqueue

      waiting for snapshot control file enqueue

      waiting for snapshot control file enqueue

      waiting for snapshot control file enqueue

      waiting for snapshot control file enqueue

      cannot make a snapshot control file

      RMAN-00571: ===========================================================

      RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

      RMAN-00571: ===========================================================

      RMAN-03009: failure of backup command on ORA_DISK_1 channel at 06/10/2015 16:03:10

      ORA-00230: operation disallowed: snapshot control file enqueue unavailable

      查看會話

      SQL> SELECT s.SID, USERNAME AS "User", PROGRAM, MODULE,

        2  ACTION, LOGON_TIME "Logon"

        3  FROM V$SESSION s, V$ENQUEUE_LOCK l

        4  WHERE l.SID = s.SID

        5  AND l.TYPE = 'CF'

        6  AND l.ID1 = 0

        7  AND l.ID2 = 2;

       

           SID User

      ---------- ------------------------------

      PROGRAM

      ------------------------------------------------

      MODULE

      ------------------------------------------------

      ACTION                           Logon

      -------------------------------- ------------

             648 SYS

      rman@db1 (TNS V1-V3)

      backup full datafile

      0000152 STARTED111               03-JUN-15

      查詢并kill相關session

      查詢數據庫SID

      Sql>select saddr,sid,serial#,paddr,username,status from v$session where sid = 648 ;SADDR                   SID    SERIAL# PADDR            USERNAME                                                     STATUS---------------- ---------- ---------- ---------------- ------------------------------------------------------------ ----------------00000000849D3D48          648        319 000000008488C070 SYS                                                          ACTIVE

       

      查詢系統SPID

      SQL> select spid from v$process where addr in(select paddr from v$session where sid=648);

       

      SPID

      ------------

      40108238                             #這個SPID對應的就是操作系統的進程號

       

      殺死session

      alter system kill session ‘648,319';     #兩個數字代表SID和SERIAL

       

      殺死spid

      SQL> !ps -ef|grep 40108238

        oracle 39125244 65011720   0 15:59:27  pts/0  0:00 grep 40108238

        oracle 40108238        1   0   Jun 03      -  1:18 oracleorcl1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

       

      $kill -9 40108238

      或者直接一步

      sql>ALTER SYSTEM DISCONNECT SESSION 'sid,serial#' IMMEDIATE/POST_TRANSACTION;

      POST_TRANSACTION表示等待事務完成后斷開會話,IMMEDIATE表示中斷會話,

      3.4.2恢復

      1、查看備份信息

      恢復的時候一定要先檢查備份文件,刪除失效(expired)備份,否則恢復會報錯。

       

      Rman>Report obsolete ;     #查看冗余無效備份

      Rman>Delete noprompt obsolete;

      Rman>Crosscheck backup;      #檢查備份信息

      Rman>Delete noprompt expired backup;             #刪除過期備份

       

      Rman>delete noprompt backupset   41      #(BS Key的值)  刪除指定備份

      Rman>delete noprompt backup;         #刪除所有備份

      2、非系統表空間dbf文件丟失

      SQL> startup

      Database mounted.
      ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
      ORA-01110: data file 4: '/usr/oracle/app/oradata/orcl/users01.dbf'  #提示data file 4不能識別。

       

      SQL> alter database datafile 4 offline;

      SQL> alter database open;

      RMAN> restore datafile 4;    #恢復數據文件4

      RMAN> recover datafile 4;    #還原數據文件 4

      SQL> alter database datafile 4 online;   

       

      3、系統表空間dbf文件丟失

      系統表空間文件丟失時,無法啟動數據庫,不能夠到open狀態,所以跳過SQL> alter database open; 命令直接恢復數據塊最后再執行SQL> alter database open;

       

      SQL> alter database datafile 4 offline;

      Database altered.

      Database altered.

      RMAN> restore datafile 4;    #恢復數據文件4

      RMAN> recover datafile 4;    #還原數據文件 4

      SQL> alter database datafile 4 online;   

      Database altered.

      SQL> alter database open;     #open在最后執行

      4、控制文件丟失,數據文件丟失

      控制文件丟失后,數據庫只能啟動到nomount狀態

       

      啟動數據庫到nomount狀態

      SQL> startup nomount;
      SQL> alter database mount;
      alter database mount
      *
      ERROR at line 1:
      ORA-00205: error in identifying control file, check alert log for more info

        

      rman中恢復控制文件

      [oracle@oracledb ~]$ rman target/

      Recovery Manager: Release 11.2.0.1.0 - Production on Thu Jun 15 15:01:13 2017

      Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

      connected to target database: ORCL (not mounted)

      RMAN> restore controlfile from '/home/oracle/oradata/backup/control/ctl_ORCL_06_15_c-1452257309-20170615-05';     #恢復控制文件

      Starting restore at 15-JUN-17
      using target database control file instead of recovery catalog
      allocated channel: ORA_DISK_1
      channel ORA_DISK_1: SID=20 device type=DISK

      channel ORA_DISK_1: restoring control file
      channel ORA_DISK_1: restore complete, elapsed time: 00:00:16
      output file name=/usr/oracle/app/oradata/orcl/control01.ctl
      output file name=/usr/oracle/app/flash_recovery_area/orcl/control02.ctl
      Finished restore at 15-JUN-17

       

      啟動數據庫到mount狀態下

      SQL> alter database mount;

       

      恢復數據文件

      RMAN> restore database;

      RMAN> recover database;

      SQL> alter database open resetlogs;    #控制文件丟失后需要執行重設日志文件

       

             再進行一次全備份!!!

      四、 日志管理

      4.1錯誤日志查詢

      1 通過命令查看錯誤日志目錄:show parameter background_dump_dest

        /usr/oracle/app/diag/rdbms/orcl/orcl/trace 

         

       

      col * format a20  設置每一列的寬度為20個字符; *也可以用具體的列名來代替

       

       

       

      五、 常見錯誤

      5.1 sysaux 表空間SM/AWR占用過大

      1、首先查看sysaux中各個項目占的比重。

      SM/AWR占據了23GB的空間。

       

      SELECT occupant_name"Item",
                 round(space_usage_kbytes/1024/1024,3)"Space Used (GB)",
                 schema_name "Schema",
                 move_procedure "MoveProcedure"
            FROM v$sysaux_occupants
          ORDER BY 2 Desc;

       

      2、查看快照,快照是存儲到sysaux表空間的

      select snap_id, begin_interval_time from sys.dba_hist_snapshot order by snap_id;

       


      select min(snap_id),max(snap_id) from dba_hist_snapshot;

       

      3、刪除快照信息

      exec dbms_workload_repository.drop_snapshot_range(49303,49323 );

      4、查看快照保存時間和間隔

      SELECT * FROM DBA_HIST_WR_CONTROL;

       

      5、修改快照保存時間和間隔

      修改為每隔1小時搜集一次,保存時間為7*24*60分鐘)

       

      EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(INTERVAL=>60, RETENTION=>7*24*60);6、回收空間

      由于存在高水位線,dbms_workload_repository.drop_snapshot_range 操作實際上是執行delete操作,所在刪除完畢快照后,空間沒有被回收。回收表空間,降低HWM(high water mark)。

       1、查看sysaux表和索引的前10占用情況,后綴為PK的表示索引表

      SELECT *

        FROM (SELECT SEGMENT_NAME, SUM(BYTES) / 1024 / 1024 MB

                FROM DBA_SEGMENTS

               WHERE TABLESPACE_NAME = 'SYSAUX'

               GROUP BY SEGMENT_NAME

               ORDER BY 2 DESC)

       WHERE ROWNUM < 10;

       

      可以看到目前表空間還是很大的。

       

      2、選擇shrink逐一釋放表空間 ,move也可以釋放表空間,但是要重建索引。可以在線操作

      #開啟行轉移,在釋放空間的時候將行向表的前面移動,以便釋放空間

      alter table WRH$_SEG_STAT enable row movement;

       

      #shrink用于釋放空間,cascade表示將表的索引的空間一起釋放,以后綴PK結尾的表示索引,釋放的時候去掉PK即可。

      ALTER TABLE test SHRINK SPACE compact

      alter table WRH$_SEG_STAT shrink space cascade;

       

      #關閉行轉移

      alter table WRH$_SEG_STAT disable row movement;

       

      3、或者選擇move釋放空間,需要停機操作,因為此時是鎖表的,不能夠進行DML操作

      alter table  ** move partition **;

      #如果是分區表的話,需要先查看分區,按照分區操作

      select segment_name,partition_name,bytes/1024/1024/1024 gb from dba_segments where segment_name='WRH$_ACTIVE_SESSION_HISTORY';

       

      #重建索引

      alter index **_PK  partion  ** rebuild

       

      此時再去查看總利用率,發現SM/AWR已經降低到5G了。

       

      7、注意事項

      由于快照刪除實際上是對表進行delete操作,因此會產生大量的歸檔,如果磁盤空間不足,將會導致問題。

       

       

      •  
      posted @ 2022-09-21 15:25  湖南饅頭  閱讀(1696)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 无人区码一码二码三码区| 亚洲无线一二三四区手机| 青草草97久热精品视频| 亚洲av成人无码精品电影在线 | 日本无人区一区二区三区| 亚洲国产精品一二三区| 许昌县| 在线观看无码av五月花| 免费无码成人AV在线播放不卡| jizz视频在线观看| 国产福利精品一区二区| 色噜噜狠狠色综合成人网| 国产在线乱子伦一区二区| 亚洲人成色99999在线观看| 老妇肥熟凸凹丰满刺激| 国产成人久久综合第一区| 亚洲国产精品成人无码区| 舞钢市| 国产免费高清69式视频在线观看| 精品中文字幕一区在线| 97人人添人澡人人爽超碰| 99久久国产福利自产拍| 亚洲欧美日韩在线不卡| 人与禽交av在线播放| 国产精品免费第一区二区| 又大又紧又粉嫩18p少妇| 国产成人精品成人a在线观看| 蜜臀久久综合一本av| 襄城县| 亚洲成av人在线播放无码| 日韩丝袜人妻中文字幕| 欧美人与动欧交视频| 国产成AV人片久青草影院| 成人无码午夜在线观看| 亚洲精品综合网在线8050影院| 亚洲aⅴ男人的天堂在线观看 | 蜜臀av一区二区三区精品| 青青草国产自产一区二区| 她也色tayese在线视频| 97国产成人无码精品久久久| 国产精品成|