~~~~~~~~~~~~~~~~~~
控制文件
SQL> select value from v$parameter where name = 'control_files';
VALUE
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/XE/control.dbf
SQL> select status,name from v$controlfile;
STATUS NAME
--------------------------------------------------------------------------------
空 /u01/app/oracle/oradata/XE/control.dbf
SQL> show parameter control_files;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /u01/app/oracle/oradata/XE/con
trol.dbf
上面三个输出是一样的
SQL> select * from v$controlfile_record_section;
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX LAST_INDEX LAST_RECID
---------------------------- ----------- ------------- ------------ -----------
DATABASE 316 1 1 0
0 0
CKPT PROGRESS 8180 11 0 0
0 0
REDO THREAD 256 8 1 0
0 0
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX
---------------------------- ----------- ------------- ------------ -----------
LAST_INDEX LAST_RECID
---------- ----------
REDO LOG 72 16 3 0
0 10
DATAFILE 520 100 4 0
0 43
FILENAME 524 2298 7 0
0 0
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX
---------------------------- ----------- ------------- ------------ -----------
LAST_INDEX LAST_RECID
---------- ----------
TABLESPACE 68 100 5 0
0 1
TEMPORARY FILENAME 56 100 1 0
0 1
RMAN CONFIGURATION 1108 50 0 0
0 0
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX
---------------------------- ----------- ------------- ------------ -----------
LAST_INDEX LAST_RECID
---------- ----------
LOG HISTORY 56 292 17 1
17 17
OFFLINE RANGE 200 163 0 0
0 0
ARCHIVED LOG 584 28 0 0
0 0
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX
---------------------------- ----------- ------------- ------------ -----------
LAST_INDEX LAST_RECID
---------- ----------
BACKUP SET 40 409 0 0
0 0
BACKUP PIECE 736 200 0 0
0 0
BACKUP DATAFILE 200 245 0 0
0 0
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX
---------------------------- ----------- ------------- ------------ -----------
LAST_INDEX LAST_RECID
---------- ----------
BACKUP REDOLOG 76 215 0 0
0 0
DATAFILE COPY 736 200 0 0
0 0
BACKUP CORRUPTION 44 371 0 0
0 0
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX
---------------------------- ----------- ------------- ------------ -----------
LAST_INDEX LAST_RECID
---------- ----------
COPY CORRUPTION 40 409 0 0
0 0
DELETED OBJECT 20 818 0 0
0 0
PROXY COPY 928 246 0 0
0 0
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX
---------------------------- ----------- ------------- ------------ -----------
LAST_INDEX LAST_RECID
---------- ----------
BACKUP SPFILE 124 131 0 0
0 0
DATABASE INCARNATION 56 292 2 1
2 2
FLASHBACK LOG 84 2048 0 0
0 0
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX
---------------------------- ----------- ------------- ------------ -----------
LAST_INDEX LAST_RECID
---------- ----------
RECOVERY DESTINATION 180 1 1 0
0 0
INSTANCE SPACE RESERVATION 28 1055 1 0
0 0
REMOVABLE RECOVERY FILES 32 1000 0 0
0 0
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX
---------------------------- ----------- ------------- ------------ -----------
LAST_INDEX LAST_RECID
---------- ----------
RMAN STATUS 116 141 0 0
0 0
THREAD INSTANCE NAME MAPPING 80 8 8 0
0 0
MTTR 100 8 0 0
0 0
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX
---------------------------- ----------- ------------- ------------ -----------
LAST_INDEX LAST_RECID
---------- ----------
DATAFILE HISTORY 568 57 0 0
0 0
STANDBY DATABASE MATRIX 400 31 31 0
0 0
GUARANTEED RESTORE POINT 212 2048 0 0
0 0
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX
---------------------------- ----------- ------------- ------------ -----------
LAST_INDEX LAST_RECID
---------- ----------
RESTORE POINT 212 2083 0 0
0 0
DATABASE BLOCK CORRUPTION 80 8384 0 0
0 0
ACM OPERATION 104 64 6 0
0 0
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX
---------------------------- ----------- ------------- ------------ -----------
LAST_INDEX LAST_RECID
---------- ----------
FOREIGN ARCHIVED LOG 604 1002 0 0
0 0
37 rows selected.
SQL>
~~~~~~~
控制文件里还有这些东西
SQL> select * from v$archived_log;
no rows selected
SQL> select dbid from v$database;
DBID
----------
2871763876
SQL> select name,created,log_mode from v$database;
NAME CREATED LOG_MODE
--------- --------- ------------
XE 27-OCT-18 NOARCHIVELOG
SQL> select * from v$database;
2871763876 XE 27-OCT-18 353178 27-OCT-18
1 28-AUG-11 NOARCHIVELOG 616964
566705 CURRENT 27-OCT-18 873 622592
30-OCT-18 NOT ALLOWED 27-OCT-18 READ WRITE MAXIMUM PERFORMANCE
UNPROTECTED ENABLED 2871767460 2871767460 PRIMARY
0 DISABLED NOT ALLOWED DISABLED NONE NO NO
NO NO 13
Linux x86 64-bit
2 2 622643
NO NO NO XE
0 DISABLED
0
NO NO
SQL> select * from v$tempfile;
FILE# CREATION_CHANGE# CREATION_ TS# RFILE# STATUS ENABLED
---------- ---------------- --------- ---------- ---------- ------- ----------
BYTES BLOCKS CREATE_BYTES BLOCK_SIZE
---------- ---------- ------------ ----------
NAME
--------------------------------------------------------------------------------
1 353349 27-OCT-18 3 1 ONLINE READ WRITE
20971520 2560 20971520 8192
/u01/app/oracle/oradata/XE/temp.dbf
SQL> select * from v$tablespace;
TS# NAME INC BIG FLA ENC
---------- ------------------------------ --- --- --- ---
0 SYSTEM YES NO YES
2 UNDOTBS1 YES NO YES
1 SYSAUX YES NO YES
4 USERS YES NO YES
3 TEMP NO NO YES
SQL> select * from v$archive;
no rows selected
SQL> select * from v$loghist;
THREAD# SEQUENCE# FIRST_CHANGE# FIRST_TIM SWITCH_CHANGE#
---------- ---------- ------------- --------- --------------
1 1 353178 27-OCT-18 353344
1 2 353344 27-OCT-18 373878
1 3 373878 27-OCT-18 402473
1 4 402473 27-OCT-18 419102
1 5 419102 27-OCT-18 448868
1 6 448868 27-OCT-18 462229
1 7 462229 27-OCT-18 488489
1 8 488489 27-OCT-18 505973
1 9 505973 27-OCT-18 514515
1 10 514515 27-OCT-18 528249
1 11 528249 27-OCT-18 535597
THREAD# SEQUENCE# FIRST_CHANGE# FIRST_TIM SWITCH_CHANGE#
---------- ---------- ------------- --------- --------------
1 12 535597 27-OCT-18 551373
1 13 551373 27-OCT-18 553962
1 14 553962 27-OCT-18 559093
1 15 559093 27-OCT-18 566705
1 16 566705 27-OCT-18 589399
1 17 589399 28-OCT-18 601449
17 rows selected.
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC
---------- ---------- ---------- ---------- ---------- ---------- ---
STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------------- ------------- --------- ------------ ---------
1 1 17 52428800 512 1 NO
INACTIVE 589399 28-OCT-18 601449 28-OCT-18
2 1 18 52428800 512 1 NO
CURRENT 601449 28-OCT-18 2.8147E+14
SQL> select * from v$logfile;
GROUP# STATUS TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
IS_
---
2 ONLINE
/u01/app/oracle/fast_recovery_area/XE/onlinelog/o1_mf_2_fx8j3blq_.log
YES
1 ONLINE
/u01/app/oracle/fast_recovery_area/XE/onlinelog/o1_mf_1_fx8j386l_.log
YES
GROUP# STATUS TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
IS_
---
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
数据字典
1. dba_objects
SQL> desc dba_objects;
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
NAMESPACE NUMBER
EDITION_NAME VARCHAR2(30)
SQL>select * from dba_objects;
18725 rows selected.
SQL> select * from dba_objects where owner='SCOTT';
no rows selected
2.all_objects 分别用 scorr/tiger 和sys登录,查看
SQL> desc all_objects;
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER NOT NULL VARCHAR2(30)
OBJECT_NAME NOT NULL VARCHAR2(30)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NOT NULL NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED NOT NULL DATE
LAST_DDL_TIME NOT NULL DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
NAMESPACE NOT NULL NUMBER
EDITION_NAME VARCHAR2(30)
SQL> select distinct(owner) from all_objects;
OWNER
------------------------------
MDSYS
PUBLIC
OUTLN
CTXSYS
HR
FLOWS_FILES
SYSTEM
APEX_040000
ORACLE_OCM
DBSNMP
XDB
OWNER
------------------------------
APPQOSSYS
SYS
SQL> select owner,object_name,created from all_objects where owner='SCOTT';
no rows selected
3. user_objects 分别用 scorr/tiger 和sys登录,查看
SQL> desc user_objects
Name Null? Type
----------------------------------------- -------- ----------------------------
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
NAMESPACE NUMBER
EDITION_NAME VARCHAR2(30)
SQL> select object_name,object_type,created from user_objects;
9153 rows selected.
4.
SQL> select table_name from user_tables;
935 rows selected.
5.
SQL> select index_name from user_indexes;
1143 rows selected.
6.
SQL> select view_name from user_views;
3747 rows selected.
7. user_catalog
SQL> desc user_catalog;
Name Null? Type
----------------------------------------- -------- ----------------------------
TABLE_NAME NOT NULL VARCHAR2(30)
TABLE_TYPE VARCHAR2(11)
SQL> select * from user_catalog;
4823 rows selected.
8. dba_users
SQL> select username,created from dba_users;
USERNAME CREATED
------------------------------ ---------
SYSTEM 28-AUG-11
SYS 28-AUG-11
ANONYMOUS 28-AUG-11
APEX_PUBLIC_USER 28-AUG-11
APEX_040000 28-AUG-11
XS$NULL 28-AUG-11
ORACLE_OCM 27-OCT-18
DIP 27-OCT-18
OUTLN 28-AUG-11
APPQOSSYS 27-OCT-18
XDB 28-AUG-11
USERNAME CREATED
------------------------------ ---------
DBSNMP 27-OCT-18
CTXSYS 28-AUG-11
MDSYS 28-AUG-11
FLOWS_FILES 28-AUG-11
HR 28-AUG-11
16 rows selected.
SQL> select * from v$fixed_table where name like 'v$LOG%';
no rows selected
SQL> select group#,members,archived,status from v$log;
GROUP# MEMBERS ARC STATUS
---------- ---------- --- ----------------
1 1 NO INACTIVE
2 1 NO CURRENT
SQL>
SQL> select * from v$logfile;
GROUP# STATUS TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
IS_
---
2 ONLINE
/u01/app/oracle/fast_recovery_area/XE/onlinelog/o1_mf_2_fx8j3blq_.log
YES
1 ONLINE
/u01/app/oracle/fast_recovery_area/XE/onlinelog/o1_mf_1_fx8j386l_.log
YES
GROUP# STATUS TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
IS_
---
SQL> select l.group#,l.archived,l.status,lf.type,lf.member from v$log l, v$logfile lf where l.group#=lf.group# and l.status ='CURRENT';
select l.group#,l.archived,l.status,lf.type,lf.member from v$log l, v$logfile lf where l.group#=lf.group# and l.status ='CURRENT'
*
ERROR at line 1:
ORA-00904: "L"."GROUP#???L"."ARCHIVED": invalid identifier
SQL> select instance_name,host_name,version,startup_time,logins from v$instance;
INSTANCE_NAME
----------------
HOST_NAME
----------------------------------------------------------------
VERSION STARTUP_T LOGINS
----------------- --------- ----------
XE
host10
11.2.0.2.0 30-OCT-18 ALLOWED
SQL> select name,created,log_mode from v$database;
NAME CREATED LOG_MODE
--------- --------- ------------
XE 27-OCT-18 NOARCHIVELOG
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~‵
重做日志:
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- ---------- ---
FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------------- ------------- --------- ------------ ---------
1 1 17 52428800 512 1 NO
INACTIVE 589399 28-OCT-18 601449 28-O CT-18
2 1 18 52428800 512 1 NO
CURRENT 601449 28-OCT-18 2.8147E+14 空
SQL> select * from v$logfile;
GROUP# STATUS TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
IS_
---
2 空 ONLINE
/u01/app/oracle/fast_recovery_area/XE/onlinelog/o1_mf_2_fx8j3blq_.log
YES
1 空 ONLINE
/u01/app/oracle/fast_recovery_area/XE/onlinelog/o1_mf_1_fx8j386l_.log
YES
GROUP# STATUS TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
IS_
---
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
归档日志部分
SQL> show parameter db_recovery_file_dest; 默认归档路径
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/fast_recovery_area
db_recovery_file_dest_size big integer 10G
SQL> show parameter log_archive_max_processes;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_max_processes integer 4
SQL> show parameter log_archive_dest_1
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string 空
log_archive_dest_10 string
log_archive_dest_11 string
log_archive_dest_12 string
log_archive_dest_13 string
log_archive_dest_14 string
log_archive_dest_15 string
log_archive_dest_16 string
log_archive_dest_17 string
log_archive_dest_18 string
log_archive_dest_19 string
SQL> select destination,binding,target,status from v$archive_dest where destination is not null; 归档终点设置
DESTINATION BINDING TARGET STATUS
--------------------------------------------------------------------------------
--------- ------- ---------
USE_DB_RECOVERY_FILE_DEST MANDATORY PRIMARY VALID
SQL> show parameter log_archive_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string 空
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_11 string
log_archive_dest_12 string
log_archive_dest_13 string
log_archive_dest_14 string
log_archive_dest_15 string
log_archive_dest_16 string
log_archive_dest_17 string
log_archive_dest_18 string
SQL> show parameter log_archive_format
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_format string %t_%s_%r.dbf
SQL> show parameter log_archive_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_11 string
log_archive_dest_12 string
log_archive_dest_13 string
log_archive_dest_14 string
log_archive_dest_15 string
log_archive_dest_16 string
log_archive_dest_17 string
log_archive_dest_18 string
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_19 string
log_archive_dest_2 string
log_archive_dest_20 string
log_archive_dest_21 string
log_archive_dest_22 string
log_archive_dest_23 string
log_archive_dest_24 string
log_archive_dest_25 string
log_archive_dest_26 string
log_archive_dest_27 string
log_archive_dest_28 string
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_29 string
log_archive_dest_3 string
log_archive_dest_30 string
log_archive_dest_31 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
log_archive_dest_8 string
log_archive_dest_9 string
log_archive_dest_state_1 string enable
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_10 string enable
log_archive_dest_state_11 string enable
log_archive_dest_state_12 string enable
log_archive_dest_state_13 string enable
log_archive_dest_state_14 string enable
log_archive_dest_state_15 string enable
log_archive_dest_state_16 string enable
log_archive_dest_state_17 string enable
log_archive_dest_state_18 string enable
log_archive_dest_state_19 string enable
log_archive_dest_state_2 string enable
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_20 string enable
log_archive_dest_state_21 string enable
log_archive_dest_state_22 string enable
log_archive_dest_state_23 string enable
log_archive_dest_state_24 string enable
log_archive_dest_state_25 string enable
log_archive_dest_state_26 string enable
log_archive_dest_state_27 string enable
log_archive_dest_state_28 string enable
log_archive_dest_state_29 string enable
log_archive_dest_state_3 string enable
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_30 string enable
log_archive_dest_state_31 string enable
log_archive_dest_state_4 string enable
log_archive_dest_state_5 string enable
log_archive_dest_state_6 string enable
log_archive_dest_state_7 string enable
log_archive_dest_state_8 string enable
log_archive_dest_state_9 string enable
SQL> show parameter log_archive
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_config string
log_archive_dest string
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_11 string
log_archive_dest_12 string
log_archive_dest_13 string
log_archive_dest_14 string
log_archive_dest_15 string
log_archive_dest_16 string
log_archive_dest_17 string
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_18 string
log_archive_dest_19 string
log_archive_dest_2 string
log_archive_dest_20 string
log_archive_dest_21 string
log_archive_dest_22 string
log_archive_dest_23 string
log_archive_dest_24 string
log_archive_dest_25 string
log_archive_dest_26 string
log_archive_dest_27 string
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_28 string
log_archive_dest_29 string
log_archive_dest_3 string
log_archive_dest_30 string
log_archive_dest_31 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
log_archive_dest_8 string
log_archive_dest_9 string
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_1 string enable
log_archive_dest_state_10 string enable
log_archive_dest_state_11 string enable
log_archive_dest_state_12 string enable
log_archive_dest_state_13 string enable
log_archive_dest_state_14 string enable
log_archive_dest_state_15 string enable
log_archive_dest_state_16 string enable
log_archive_dest_state_17 string enable
log_archive_dest_state_18 string enable
log_archive_dest_state_19 string enable
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_2 string enable
log_archive_dest_state_20 string enable
log_archive_dest_state_21 string enable
log_archive_dest_state_22 string enable
log_archive_dest_state_23 string enable
log_archive_dest_state_24 string enable
log_archive_dest_state_25 string enable
log_archive_dest_state_26 string enable
log_archive_dest_state_27 string enable
log_archive_dest_state_28 string enable
log_archive_dest_state_29 string enable
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_3 string enable
log_archive_dest_state_30 string enable
log_archive_dest_state_31 string enable
log_archive_dest_state_4 string enable
log_archive_dest_state_5 string enable
log_archive_dest_state_6 string enable
log_archive_dest_state_7 string enable
log_archive_dest_state_8 string enable
log_archive_dest_state_9 string enable
log_archive_duplex_dest string
log_archive_format string %t_%s_%r.dbf
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_local_first boolean TRUE
log_archive_max_processes integer 4
log_archive_min_succeed_dest integer 1
log_archive_start boolean FALSE
log_archive_trace integer 0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
表空间与数据文件管理
SQL> select * from dba_tablespaces;
TABLESPACE_NAME BLOCK_SIZE INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS
------------------------------ ---------- -------------- ----------- -----------
MAX_EXTENTS MAX_SIZE PCT_INCREASE MIN_EXTLEN STATUS CONTENTS LOGGING FOR
----------- ---------- ------------ ---------- --------- --------- --------- ---
EXTENT_MAN ALLOCATIO PLU SEGMEN DEF_TAB_ RETENTION BIG PREDICA ENC
---------- --------- --- ------ -------- ----------- --- ------- ---
COMPRESS_FOR
------------
SYSTEM 8192 65536 1
2147483645 2147483645 65536 ONLINE PERMANENT LOGGING NO
LOCAL SYSTEM NO MANUAL DISABLED NOT APPLY NO HOST NO
TABLESPACE_NAME BLOCK_SIZE INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS
------------------------------ ---------- -------------- ----------- -----------
MAX_EXTENTS MAX_SIZE PCT_INCREASE MIN_EXTLEN STATUS CONTENTS LOGGING FOR
----------- ---------- ------------ ---------- --------- --------- --------- ---
EXTENT_MAN ALLOCATIO PLU SEGMEN DEF_TAB_ RETENTION BIG PREDICA ENC
---------- --------- --- ------ -------- ----------- --- ------- ---
COMPRESS_FOR
------------
SYSAUX 8192 65536 1
2147483645 2147483645 65536 ONLINE PERMANENT LOGGING NO
LOCAL SYSTEM NO AUTO DISABLED NOT APPLY NO HOST NO
TABLESPACE_NAME BLOCK_SIZE INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS
------------------------------ ---------- -------------- ----------- -----------
MAX_EXTENTS MAX_SIZE PCT_INCREASE MIN_EXTLEN STATUS CONTENTS LOGGING FOR
----------- ---------- ------------ ---------- --------- --------- --------- ---
EXTENT_MAN ALLOCATIO PLU SEGMEN DEF_TAB_ RETENTION BIG PREDICA ENC
---------- --------- --- ------ -------- ----------- --- ------- ---
COMPRESS_FOR
------------
UNDOTBS1 8192 65536 1
2147483645 2147483645 65536 ONLINE UNDO LOGGING NO
LOCAL SYSTEM NO MANUAL DISABLED NOGUARANTEE NO HOST NO
TABLESPACE_NAME BLOCK_SIZE INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS
------------------------------ ---------- -------------- ----------- -----------
MAX_EXTENTS MAX_SIZE PCT_INCREASE MIN_EXTLEN STATUS CONTENTS LOGGING FOR
----------- ---------- ------------ ---------- --------- --------- --------- ---
EXTENT_MAN ALLOCATIO PLU SEGMEN DEF_TAB_ RETENTION BIG PREDICA ENC
---------- --------- --- ------ -------- ----------- --- ------- ---
COMPRESS_FOR
------------
TEMP 8192 1048576 1048576 1
2147483645 0 1048576 ONLINE TEMPORARY NOLOGGING NO
LOCAL UNIFORM NO MANUAL DISABLED NOT APPLY NO HOST NO
TABLESPACE_NAME BLOCK_SIZE INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS
------------------------------ ---------- -------------- ----------- -----------
MAX_EXTENTS MAX_SIZE PCT_INCREASE MIN_EXTLEN STATUS CONTENTS LOGGING FOR
----------- ---------- ------------ ---------- --------- --------- --------- ---
EXTENT_MAN ALLOCATIO PLU SEGMEN DEF_TAB_ RETENTION BIG PREDICA ENC
---------- --------- --- ------ -------- ----------- --- ------- ---
COMPRESS_FOR
------------
USERS 8192 65536 1
2147483645 2147483645 65536 ONLINE PERMANENT LOGGING NO
LOCAL SYSTEM NO AUTO DISABLED NOT APPLY NO HOST NO
发现有一列数据基本是空的。于是;
SQL> select tablespace_name,next_extent from dba_tablespaces;
TABLESPACE_NAME NEXT_EXTENT
------------------------------ -----------
SYSTEM
SYSAUX
UNDOTBS1
TEMP 1048576
USERS
发现,除了TEMP表空间的next_extent 列有数据之外,其他表空间的这一列都是空值。视图dba_tablespaces的其他21列都有数值。
查点别的;
SQL> select tablespace_name,logging,status from dba_tablespaces;
TABLESPACE_NAME LOGGING STATUS
------------------------------ --------- ---------
SYSTEM LOGGING ONLINE
SYSAUX LOGGING ONLINE
UNDOTBS1 LOGGING ONLINE
TEMP NOLOGGING ONLINE
USERS LOGGING ONLINE
SQL> select * from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
/u01/app/oracle/oradata/XE/users.dbf
4 USERS 104857600 12800 AVAILABLE
4 YES 1.1811E+10 1441792 1280 103809024 12672
ONLINE
FILE_NAME
--------------------------------------------------------------------------------
FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
/u01/app/oracle/oradata/XE/sysaux.dbf
2 SYSAUX 681574400 83200 AVAILABLE
2 YES 3.4360E+10 4194302 1280 680525824 83072
ONLINE
FILE_NAME
--------------------------------------------------------------------------------
FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
/u01/app/oracle/oradata/XE/undotbs1.dbf
3 UNDOTBS1 225443840 27520 AVAILABLE
3 YES 3.4360E+10 4194302 640 224395264 27392
ONLINE
FILE_NAME
--------------------------------------------------------------------------------
FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
/u01/app/oracle/oradata/XE/system.dbf
1 SYSTEM 377487360 46080 AVAILABLE
1 YES 629145600 76800 1280 376438784 45952
SYSTEM
SQL> select * from v$tempfile;
FILE# CREATION_CHANGE# CREATION_ TS# RFILE# STATUS ENABLED
---------- ---------------- --------- ---------- ---------- ------- ----------
BYTES BLOCKS CREATE_BYTES BLOCK_SIZE
---------- ---------- ------------ ----------
NAME
--------------------------------------------------------------------------------
1 353349 27-OCT-18 3 1 ONLINE READ WRITE
20971520 2560 20971520 8192
/u01/app/oracle/oradata/XE/temp.dbf
SQL> select * from database_properties;
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
DICT.BASE
2
dictionary base tables version #
DEFAULT_TEMP_TABLESPACE
TEMP
Name of default temporary tablespace
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
DEFAULT_PERMANENT_TABLESPACE
SYSTEM
Name of default permanent tablespace
DEFAULT_EDITION
ORA$BASE
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
Name of the database default edition
Flashback Timestamp TimeZone
GMT
Flashback timestamp created in GMT
TDE_MASTER_KEY_ID
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
WORKLOAD_REPLAY_MODE
PREPARE implies external replay clients can connect; REPLAY implies workload rep
lay is in progress
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
DST_UPGRADE_STATE
NONE
State of Day Light Saving Time Upgrade
DST_PRIMARY_TT_VERSION
14
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
Version of primary timezone data file
DST_SECONDARY_TT_VERSION
0
Version of secondary timezone data file
DEFAULT_TBS_TYPE
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
SMALLFILE
Default tablespace type
NLS_LANGUAGE
AMERICAN
Language
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
NLS_TERRITORY
AMERICA
Territory
NLS_CURRENCY
$
Local currency
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
NLS_ISO_CURRENCY
AMERICA
ISO currency
NLS_NUMERIC_CHARACTERS
.,
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
Numeric characters
NLS_CHARACTERSET
AL32UTF8
Character set
NLS_CALENDAR
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
GREGORIAN
Calendar system
NLS_DATE_FORMAT
DD-MON-RR
Date format
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
NLS_DATE_LANGUAGE
AMERICAN
Date language
NLS_SORT
BINARY
Linguistic definition
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
NLS_TIME_FORMAT
HH.MI.SSXFF AM
Time format
NLS_TIMESTAMP_FORMAT
DD-MON-RR HH.MI.SSXFF AM
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
Time stamp format
NLS_TIME_TZ_FORMAT
HH.MI.SSXFF AM TZR
Time with timezone format
NLS_TIMESTAMP_TZ_FORMAT
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
DD-MON-RR HH.MI.SSXFF AM TZR
Timestamp with timezone format
NLS_DUAL_CURRENCY
$
Dual currency symbol
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
NLS_COMP
BINARY
NLS comparison
NLS_LENGTH_SEMANTICS
BYTE
NLS length semantics
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
NLS_NCHAR_CONV_EXCP
FALSE
NLS conversion exception
NLS_NCHAR_CHARACTERSET
AL16UTF16
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
NCHAR Character set
NLS_RDBMS_VERSION
11.2.0.2.0
RDBMS version for NLS parameters
GLOBAL_DB_NAME
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
XE
Global database name
EXPORT_VIEWS_VERSION
8
Export views revision #
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
WORKLOAD_CAPTURE_MODE
CAPTURE implies workload capture is in progress
NO_USERID_VERIFIER_SALT
0F9C71103BF187DBA96ABF48E376A792
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
DBTIMEZONE
00:00
DB time zone
36 rows selected.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SQL> select * from database_properties where property_name like 'DEFAULT%';
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
DEFAULT_TEMP_TABLESPACE
TEMP
Name of default temporary tablespace
DEFAULT_PERMANENT_TABLESPACE
SYSTEM
Name of default permanent tablespace
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
DEFAULT_EDITION
ORA$BASE
Name of the database default edition
DEFAULT_TBS_TYPE
SMALLFILE
PROPERTY_NAME
------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
Default tablespace type
SQL>select table_name from dba_tables;
1687 rows selected.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
还原段;
SQL> show parameter undo ;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL>
SQL> show parameter undo_retention;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_retention integer 900
SQL> select name,value from v$parameter where name='undo_retention';
NAME
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
undo_retention
900
SQL> select * from v$session a, v$rollname b,v$transaction c where a.saddr=c.ses_addr and b.usn=c.xidusn;
NO
SQL> select a.username,b.name,c.used_ublk from v$session a, v$rollname b,v$transaction c where a.saddr=c.ses_addr and b.usn=c.xidusn;
NO
SQL> select segment_name,tablespace_name,extent_id from dba_undo_extents
188 rows selected.
SQL>select segment_name,tablespace_name,extent_id from dba_undo_extents where segment_name='_SYSSMU114$';
NO
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SQL> select name,checkpoint_change# from v$database; 系统全全局检查点
NAME CHECKPOINT_CHANGE#
--------- ------------------
XE 601449
这个就是从v$log中的first_change#获得的;
SQL> select group#,first_change#,status from v$log;
GROUP# FIRST_CHANGE# STATUS
---------- ------------- ----------------
1 589399 INACTIVE
2 601449 CURRENT
下面控制文件中的数据文件SCN(即CHECKPOINT——CHANGE#),是从数据文件头部的SCN获得。
SQL> select file#,checkpoint_change#,last_change# from v$datafile; 当前的文件检查点
FILE# CHECKPOINT_CHANGE# LAST_CHANGE#
---------- ------------------ ------------
1 601449
2 601449
3 601449
4 601449
下面就是数据文件头部SCN
SQL>select file#,checkpoint_change# from v$datafile_header;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 601449
2 601449
3 601449
4 601449
对比三和四是否相同
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1)数据库全备:备份database的所有数据块(datafile、controlfile)
2)部分备份:只备份单个表空间或datafile(archivelog模式)
3)一致性备份(冷备份):在数据库正常关闭情况下做备份,数据库处于一致性状态。
4)非一致性备份(热备份):database在open状态下备份。
联机重做日志,归档日志(归档重做日志)
手工管理的备份恢复
备份恢复的概念
物理备份
数据库文件(控制文件,数据文件,重做日志文件)复制到指定目录。
方法1:操作系统CP 命令
方法2:RMAN(RECOVERY MANAGER)工具:命令行方式或者GC或EM图像化工具。
逻辑备份
使用数据迁移工具如EXPDP,EXP,导出数据库对象的逻辑结构以及数据,此时会先导出数据库对象的结构,如表的定义或者索引的结构等。然后导出相应的数据库对象中的数据。使用逻辑备份的话,恢复整个数据库会需要很长时间,因为逻辑备份的恢复需要数据库创建所有的数据库对象,并插入相应的数据。物理备份就更快,因为主要是复制数据文件的过程。逻辑备份不能代替物理备份。
一、expdp/impdp和exp/imp的区别
1、exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
2、expdp和impdp是服务端的工具程序,他们只能在oracle服务端使用,不能在客户端使用。
3、imp只适用于exp导出的文件,不适用于expdp导出文件;impdp只适用于expdp导出的文件,而不适用于exp导出文件。
4、对于10g以上的服务器,使用exp通常不能导出0行数据的空表,而此时必须使用expdp导出。
二、expdp导出步骤
(1)创建逻辑目录:
第一步:在服务器上创建真实的目录;(注意:第三步创建逻辑目录的命令不会在OS上创建真正的目录,所以要先在服务器上创建真实的目录。如下图:)
第二步:用sys管理员登录sqlplus;
oracle@ypdbtest:/home/oracle/dmp/vechcore>sqlplus
SQL*Plus: Release 11.2.0.4.0 Production on Tue Sep 5 09:20:49 2017
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Enter user-name: sys as sysdba
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
第三步:创建逻辑目录;
SQL> create directory data_dir as '/home/oracle/dmp/user';
Directory created.
第四步:查看管理员目录,检查是否存在;
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME
------------------------------ ------------------------------
DIRECTORY_PATH
--------------------------------------------------------------------------------
SYS DATA_DIR
/home/oracle/dmp/user
第五步:用sys管理员给你的指定用户赋予在该目录的操作权限。
select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
select * from all_users; 查看你能管理的所有用户!
select * from user_users; 查看当前用户信息 !
SQL> grant read,write on directory data_dir to user;
Grant succeeded.
(2)用expdp导出dmp,有五种导出方式:
第一种:“full=y”,全量导出数据库;
expdp user/passwd@orcl dumpfile=expdp.dmp directory=data_dir full=y logfile=expdp.log;
第二种:schemas按用户导出;
expdp user/passwd@orcl schemas=user dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;
第三种:按表空间导出;
expdp sys/passwd@orcl tablespace=tbs1,tbs2 dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;
第四种:导出表;
expdp user/passwd@orcl tables=table1,table2 dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;
第五种:按查询条件导;
expdp user/passwd@orcl tables=table1='where number=1234' dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;
三、impdp导入步骤
(1)如果不是同一台服务器,需要先将上面的dmp文件下载到目标服务器上,具体命令参照:http://www.cnblogs.com/promise-x/p/7452972.html
(2)参照“expdp导出步骤”里的前三步,建立逻辑目录;
(3)用impdp命令导入,对应五种方式:
第一种:“full=y”,全量导入数据库;
impdp user/passwd directory=data_dir dumpfile=expdp.dmp full=y;
第二种:同名用户导入,从用户A导入到用户A;
impdp A/passwd schemas=A directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;
第三种:①从A用户中把表table1和table2导入到B用户中;
impdp B/passwdtables=A.table1,A.table2 remap_schema=A:B directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;
②将表空间TBS01、TBS02、TBS03导入到表空间A_TBS,将用户B的数据导入到A,并生成新的oid防止冲突;
impdp A/passwd remap_tablespace=TBS01:A_TBS,TBS02:A_TBS,TBS03:A_TBS remap_schema=B:A FULL=Y transform=oid:n
directory=data_dir dumpfile=expdp.dmp logfile=impdp.log
第四种:导入表空间;
impdp sys/passwd tablespaces=tbs1 directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;
第五种:追加数据;
impdp sys/passwd directory=data_dir dumpfile=expdp.dmp schemas=system table_exists_action=replace logfile=impdp.log;
--table_exists_action:导入对象已存在时执行的操作。有效关键字:SKIP,APPEND,REPLACE和TRUNCATE
冷备份与热备份
冷备份:DB关闭
热备份:DB打开。必须归档模式。
数据库恢复
两种情况:
实例恢复:shutdown abort。由数据库自动完成,不需要用户干预。前滚(roll forward)回滚(roll back)。
介质恢复:磁盘损毁,数据文件损坏,需要介质恢复。
实例恢复:
前滚:
未完全提交的事务,即该事务已经被执行commit命令了,只是现在该事务修改所对应的脏数据块中只有一部分被写到磁盘上的数据文件中,还有一部分已经被置为提交标记的脏块还在内存上,如果此时数据库实例崩溃了,则当数据库实例恢复时,就需要用前滚(这个机制)来完成事务的完全提交,即将先前那部分已经被置为提交标记且还在内存上的脏块写入到磁盘上的数据文件中。
回滚:
未提交的事务,即该事务未被执行commit命令。但是此时,该事务修改的脏块中也有可能一部分脏块写入到数据文件中了。如果此时数据库实例崩溃了,则当数据库实例恢复时,就需要用回滚(这个机制)来将先前那部分已经写入到数据文件的脏块从数据文件上撤销掉。
注释:
实例恢复,就是oracle软件系统根据数据库实例崩溃前最后一次检查点的那一刻到数据库实例崩溃那一刻期间所做的所有操作(无论该操作是否有提交的,这些操作可以从重做日志上读取)对该数据库实例对应的数据库(特别是数据文件部分做恢复,当然其他配合数据文件的文件,如控制文件,日志文件,也会做相关的恢复修改)进行前滚,即将该期间的操作重做一遍。之后再将其中未提交的操作进行回滚。这里,可能就有人疑问了,为什么前滚时不只做提交的操作,未提交的操作就不要做就好了嘛?因为数据库实例崩溃前,未被执行commit命令的事务,其所修改的脏块中也有可能一部分脏块已经写入到数据文件中了,所以需要进行回滚操作。
总之,实例恢复时,先做前滚,后做回滚。
~~~~~~~
(疑问)至于为什么不用如下方法就不得而知了?
该方法具体为,前滚时只做提交的操作,不做未提交的操作,到回滚操作阶段时,再去回滚那些(记录在重做日志里的)未提交的操作。
【前滚和回滚交替进行??--------Recovery在SQL Server启动时也会发生,在数据库启动过程中,SQL Server会检查事务日志,看是否存在已提交或未提交的事务,如果发现在最后一次检查点发生后,还有已提交的事务,则SQL Server会对这些事务进行REDO(ROLL FORWARD);而如果发现未提交的事务,则进行UNDO(ROLL BACK)。http://blog.csdn.net/hmzhangfeng/article/details/6338021】
注意: 未提交的事务 提交的事务 未完全提交的事务 完全提交的事务
~~~~~~~~~~~~~~~
介质恢复:
复原restore:
恢复recovery:
完全和不完全恢复:
完全恢复:恢复到最新状态,不丢失任何数据。需要有数据文件的备份,并且有备份以来的全部的归档日志文件和当前的日志文件。就不会丢失数据。不同力度:数据库级,表空间级,数据文件级。
不完全恢复:会有数据丢失。是由于丢失归档日志或者当前日志造成的。可恢复到指定的时间点!只能在数据库级实现!
~~~~~~~~~~~~~~~~~~~~
非归档模式下的冷备份和恢复
冷备份的步骤
冷备份下的恢复
缺少重做日志文件的恢复方法
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
归档模式与非归档模式
设置数据库的归档模式
startup mount; 启动到mount状态
alter database open;
archive log list; 查看当前的归档模式(是否归档)显示为 Archive Mode
ps -ef | grep arc 查看归档进程信息
发现归档进程已经启动。
alter system archive log current;
手动归档
设置归档进程相关参数
归档进程的作用是将重做日志文件备份到指定的归档目录。
LGWR进程会将REDO LOG BUFFER中的重做数据写入REDO LOG;每当一个REDO LOG GROUP 满了,或者直接发出SWITCH LOGFILE 命令,都会触发日志组的切换,当发生日志组的切换时,ARC进程会将当前的重做日志中的数据写入归档目录,LGWR进程是架构内存中的数据写入重做日志文件,是内存读磁盘写,而ARC进程是将重做日志文件写入归档文件,是磁盘读磁盘写,显然LGWR进程的读写效率或者读写速度比ARC进程要快,而频繁发生DML操作的数据库中,可能会发生由于归档慢而重做日志写入速度快造成的数据库被HANG住了,此时数据库什么也不做,就是等待ARC进程将当前的重做日志写入归档文件,为了匹配二者的速度问题可以考虑修改归档进程参数,log_archive_max_processes,它的作用是提高归档进程的数量,启动更多的归档进程完成写归档的过程。
默认情况下,该参数的值是2,。由于参数log_archive_max_processes 是动态参数,可以直接修改。
show parameter log_archive_max_processes;
alter system set log_archive_max_processes=3;
提示为system altered 表示内存中和SPFILE中同时修改了该参数。
ps -ef | grep arc
看到三个进程。
管理归档文件和归档目录
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
手工热备份数据库的步骤
手工备份
指的是操作系统工具(cp)将数据库文件备份到指定的目录。热备份可以备份某个表空间的一个或者所有数据文件。备份过程中表空间依然可用,DML操作支持。
备份过程中数据文件头的SCN被锁定,此时不会有数据写入数据文件,那么为什么还支持DML?因为此时数据的变化都写进了重做日志文件,当表空间或者数据文件结束备份模式时,会触发恢复过程,将涉及该表空间的所有变化数据写入该表空间,提升数据文件头的SCN,使得控制文件和数据文件中记录的SCN一致。热备必然处于归档模式,此时只需要备份数据文件,而对于控制文件,和重做日志归档日志可以考虑不备份,因为这些可以通过前期的冗余设计来实现。
备份过程(备份USERS表空间为例):
将表空间至于备份模式,使用alter tablespace users begin backup 指令;
使用操作系统工具将表空间对应的数据文件备份到指定目录;
结束备份模式,使用alter tablespace users end backup 指令;
归档当前日志,备份归档日志。
例子:
select * from dba_data_files;
alter tablespace users begin backup;
select * from v$backup;
cp /u01/app/oracle/oradata/PROD/user*.* /u01/backup
alter tablespace users end backup;
select * from v$backup;
alter system archive log current;
select * from v$datafile ;
检查点一致且已经提升。
2.2 手工备份和恢复的命令
1)备份和还原都使用OS命令,如linux中的cp
2)恢复用sqlplus命令:recover(恢复)
2.3 备份前要对数据库进行检查:
检查有关的视图:(防止丢东西)
v$datafile\v$datafile_header\v$controlfile\v$logfile\dba_tablespaces\dba_data_files
1) 检查需要备份的数据文件
SQL>select name from v$datafile;
SQL>select file_id,file_name,tablespace_name from dba_data_files;
2)检查要备份的控制文件
SQL>select name from v$controlfile;
3)在线redo日志不需要做备份
2.4 手工非一致性备份(热备份)的执行方式及热备份的监控(v$backup)
这个已经很少使用了。
注意:对只读的表空间不能做热备份,临时表空间不需要备份,特别强调:NOARCHIVE模式下不支持手工热备(考点)。
1)在备份前要进入backupmode(backup模式),
即:执行begin backup (在数据文件上生成检查点,写入scn ,将来恢复的时候以此scn为起点)
SQL>alter database begin backup; //对整个库做热备份
SQL>alter database end backup;
SQL>alter tablespace users begin backup; //对表空间做备份
SQL>alter tablespace users end backup;
2)备份期间利用v$backup 监控
例;
SQL>altertablespace test begin backup;
SQL>select file#,checkpoint_change# from v$datafile_header;
FILE# CHECKPOINT_CHANGE#
----------------------------
1 2414314
2 2414314
3 2414314
4 2414314
5 2414314
6 2430480 //在备份期间 ,scn被冻结,不发生变化。
7 2414314
SQL> select * from v$backup;
FILE# STATUS CHANGE# TIME
---------------------------- ---------- -------------------
1 NOT ACTIVE 0
2 NOT ACTIVE 0
3 NOT ACTIVE 0
4 NOT ACTIVE 0
5 NOT ACTIVE 0
6 ACTIVE 2430480 2012-07-3011:07:19
7 NOT ACTIVE 0
STATUS 是ACTIVE,表示可以备份相应的数据文件。并且对于其中的数据块DBWN仍然可以刷新。
$cptest01.dbf test01.bak
备份完毕,执行end backup
SQL> altertablespace test end backup;
SQL>select * from v$backup;
FILE# STATUS CHANGE# TIME
---------------------------- ---------- -------------------
1 NOT ACTIVE 0
2 NOT ACTIVE 0
3 NOT ACTIVE 0
4 NOT ACTIVE 0
5 NOT ACTIVE 0
6 NOT ACTIVE 2430480 2012-07-30 11:07:19
7 NOT ACTIVE 0
如果在end backup之前发生数据库abort,那么可以在下次启动到mount时end backup,从而完成实例恢复。
关于 split block (分裂的块)
我们知道一个Oracle block一般包含多个OSblock,当手工热备时,OS的cp单位不是Oracle block而是OS block,而Oracle的DBWR又可能不时的从内存中刷新Oracle block(脏块)到磁盘上,如此,OS级的拷贝便可能造成:一个Oracle Block是由不同的版本组成,比如未被DBWR刷新Header block 加上另一部分被刷新的foot block,这样cp出来的Oracle blcok就是split block。
数据库的一致性是不允许oracleblock是split的, Oracle采取的办法是:在backup mode后,如果发现首次DBWR要写脏块,则将该块被刷新之前的镜像数据记录到redo buffer,这样,虽然cp后的文件里仍然含有split block,而当需要恢复时,日志会前滚该块的前镜像,以保证所有被恢复的oracle block是一个完整的版本。
这就是我们常常发现在热备时日志文件会急剧增大的原因。
*考点:手工热备不能备份临时表空间,甚至不能将它们置于备份模式。
2.5 dbv检查数据文件是否有坏块
在手工备份前,应该检查datafile 是否有坏块,备份完后对备份也做检查
[oracle@timranadmin]$ dbv //相当于help信息
DBVERIFY:Release 11.1.0.6.0 - Production on Mon Jul 30 11:11:07 2012
Copyright(c) 1982, 2007, Oracle. All rightsreserved.
Keyword Description (Default)
----------------------------------------------------
FILE File to Verify (NONE)
START Start Block (First Block of File)
END End Block (Last Block of File)
BLOCKSIZE Logical Block Size (8192)
LOGFILE Output Log (NONE)
FEEDBACK Display Progress (0)
PARFILE Parameter File (NONE)
USERID Username/Password (NONE)
SEGMENT_ID Segment ID (tsn.relfile.block) (NONE)
HIGH_SCN Highest Block SCN To Verify (NONE)
(scn_wrap.scn_base OR scn)
[oracle@timranadmin]$
对某个datafile做坏块检查
[oracle@timranadmin]$ dbv file=/u01/oradata/timran11g/users01.dbf feedback=50
DBVERIFY- 开始验证: FILE = /u01/oradata/timran11g/users01.dbf
.......
DBVERIFY- 验证完成
检查的页总数: 640
处理的页总数 (数据): 107
失败的页总数 (数据): 0
处理的页总数 (索引): 36
失败的页总数 (索引): 0
处理的页总数 (其它): 478
处理的总页数 (段) : 0
失败的总页数 (段) : 0
空的页总数: 19
标记为损坏的总页数: 0
流入的页总数: 0
加密的总页数 : 0
最高块 SCN : 695469 (0.695469)
热备份的过程中对数据库崩溃的处理方法
热备份的原理
备份控制文件
介质恢复的原理
归档模式下的完全恢复
数据文件在有备份的情况下的恢复
数据文件在无备份的情况下的恢复
系统表空间数据文件损坏的完全恢复
当前UNDO表空间损坏的完全恢复
非当前UNDO表空间损坏的完全恢复
何时使用不完全恢复
不完全恢复的场合
不完全恢复的类型
所有控制文件丢失的恢复方法
使用备份的控制文件
重建控制文件
注意:对只读的表空间不能做热备份,临时表空间不需要备份,特别强调:NOARCHIVE模式下不支持手工热备(考点)。