当前位置:Gxlcms > 数据库问题 > oracle学习笔记(转)

oracle学习笔记(转)

时间:2021-07-01 10:21:17 帮助过:6人阅读

命令行操作:
打开服务: services.msc
启动Oracle: net start OracleOraHome92TNSListener
     net start OracleService实例名
停止Oracle: net stop OracleOraHome92TNSListener
            net stop OracleService实例名
打开Enterprise Manager Console: oemapp.bat console即会出现enterprise manager console界面
打开sqlplus
sqlplusw /nolog
或者sqlplus /nolog

以下操作在打开sqlplus以sys用户登录后进行------------------------
SQL> conn sys/sys@gist as sysdba;
或者SQL> conn sys/sys as sysdba;

--------------------------------------更改语言
alter session set nls_language=american;

--------------------------------------清除当前窗口
clea scre

执行某SQL文件
SQL> @D:\oracle\ora92\RDBMS\admin\catalog.sql
SQL> @C:\a.sql;


show parameter shared;
查看三种数据库文件
select * from v$logfile;-------日志文件
select * from v$datafile;------数据文件
select * from v$controlfile;---控制文件

select * from v$log;-----------当前重做日志文件的序列号,日志组
select * from v$backup;--------备份文件
select * from v$tempfile;------临时文件

设置进入备份状态
SQL> alter tablespace users begin backup;-----设置进入备份状态
取消联机备份
SQL> alter tablespace users end backup;-------取消联机备份

查看归档日志
SQL> select * from v$archived_log;------------查看归档日志

SQL> show parameter spfile--------------------查看当前系统启动的SPFILE

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      %ORACLE_HOME%\DATABASE\SPFILE%

**********************************************************************************************************

--------------------------------------------------进入ISQLPLUS : http://WWW-976307DA5D4:7778/isqlplusdba
查D:\oracle\ora92\Apache\Apache\ports.ini文件中的s_apachePort = 7778
命令行完成以下设置:【添加登录用户admin及密码】
C:\Documents and Settings\Administrator>d:
D:\>cd D:\oracle\ora92\Apache\Apache\bin
D:\oracle\ora92\Apache\Apache\bin>htpasswd D:/oracle/ora92/sqlplus/admin/iplusdb
a.pw admin    【解释:设置用户名:admin】
Automatically using MD5 format on Windows.
New password: *****    【解释:设置密码:admin】
Re-type new password: *****  【解释:重复密码:admin】
Adding password for user admin

查D:\oracle\ora92\sqlplus\admin\iplusdba.pw文件中生成参数信息admin:$apr1$MJ5.....$WiF.iQOtbDozEvhYfl8tt0
启动OracleOraHome92HTTPServer服务
IE访问地址:
http://WWW-976307DA5D4:7778/isqlplusdba
http://127.0.0.1:7778/isqlplusdba也可访问

*************************************************************************************************************


查看进程
select *  from  v$bgprocess where paddr<>‘00‘;
查看日志buffer
show parameter log_buffer;
查看归档日志
archive log list


打开Database Configuration Assistant
C:\Documents and Settings\Administrator>dbca ------------------即打开数据库配置帮手图形界面

 

sys初始口令: change_on_install 为数据库数据字典表的所有者[Owner of the database data dictionary]
system初始口令: manager 为管理工具所要求的类表及视图的所有者[Owner of additional internal tables and views used by Oracle tools]
scott初始口令: tiger


创建用户ID
create os user id
create os group ora_dba, ora_gist_dba

查看有多少用户授予了dba权限
select * from v$pwfile_users

授予某用户为dba权限
grant sysdba to username

取消某用户的dba权限
revoke sysdba from username


sql*plus环境设置命令
set autocommit on
set linesize 1000
关闭数据库 shutdown immediate
启动数据库 startup

set wrap off
set linesize 100

查看参数文件
select * from v$system_parameter where name like ‘time%‘
/
run

利用参数文件的顺序sid为数据库名GIST
-->spfilesid.ora-->spfile.ora-->initsid.ora

修改D:\oracle\admin\gist\pfile\init.ora文件参数
select name, value from v$system_parameter where name like ‘time%‘;
alter system set timed_statistics=false scope=spfile;
startup force

desc v$system_parameter
 名称                                                  是否为空? 类型
 ----------------------------------------------------- -------- -------------------
 NUM                                                            NUMBER
 NAME                                                           VARCHAR2(64)
 TYPE                                                           NUMBER
 VALUE                                                          VARCHAR2(512)
 ISDEFAULT                                                      VARCHAR2(9)
 ISSES_MODIFIABLE                                               VARCHAR2(5)
 ISSYS_MODIFIABLE                                               VARCHAR2(9)
 ISMODIFIED                                                     VARCHAR2(8)
 ISADJUSTED                                                     VARCHAR2(5)
 DESCRIPTION                                                    VARCHAR2(64)
 UPDATE_COMMENT                                                 VARCHAR2(255)

select name, isses_modifiable from v$system_parameter where isses_modifiable=‘TRUE‘;

修改SQL----------------false改为‘FALSE‘

SQL> select name, issys_modifiable from v$system_parameter where issys_modifiable<>false;
select name, issys_modifiable from v$system_parameter where issys_modifiable<>false
                                                                              *
ERROR 位于第 1 行:
ORA-00904: "FALSE": 无效的标识符


SQL> c /false/‘FALSE‘;-----------------------------修改SQL
  1* select name, issys_modifiable from v$system_parameter where issys_modifiable<>‘FALSE‘
SQL> run
  1* select name, issys_modifiable from v$system_parameter where issys_modifiable<>‘FALSE‘

NAME                                                             ISSYS_MOD
---------------------------------------------------------------- ---------
timed_statistics                                                 IMMEDIATE
timed_os_statistics                                              IMMEDIATE
resource_limit                                                   IMMEDIATE
license_max_sessions                                             IMMEDIATE
license_sessions_warning                                         IMMEDIATE
shared_pool_size                                                 IMMEDIATE
large_pool_size                                                  IMMEDIATE
trace_enabled                                                    IMMEDIATE
nls_length_semantics                                             IMMEDIATE
nls_nchar_conv_excp                                              IMMEDIATE

备份init.ora文件
create pfile=‘d:\initbck.ora‘ from spfile;

创建表空间:
SQL> create tablespace test1
  2  datafile ‘d:\test1.dbf‘ size 2m;

表空间已创建。

SQL> drop tablespace test1;
test1.dbf依然存在
删除表空间:

SQL> create tablespace test1
  2  datafile ‘d:\test1.dbf‘ reuse;

表空间已创建。

SQL> drop tablespace test1
  2  including contents and datafiles;

表空间已丢弃。
test1.dbf已经删除


指定默认创建表空间的位置及日志文件的默认位置
指定前,不能创建
SQL> create tablespace test1;
create tablespace test1
                      *
ERROR 位于第 1 行:
ORA-02199: 丢失 DATAFILE/TEMPFILE 子句


SQL> show parameter db_create

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string
db_create_online_log_dest_1          string
db_create_online_log_dest_2          string
db_create_online_log_dest_3          string
db_create_online_log_dest_4          string
db_create_online_log_dest_5          string
指定后
SQL> alter system set db_create_file_dest=
  2  ‘d:\oracle\oradb‘;

系统已更改。

SQL> create tablespace test1;

表空间已创建。

SQL> show parameter db_create;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string      d:\oracle\oradb
db_create_online_log_dest_1          string
db_create_online_log_dest_2          string
db_create_online_log_dest_3          string
db_create_online_log_dest_4          string
db_create_online_log_dest_5          string

增加日志文件缺省位置d:\oracle\oradb
alter database add logfile group 6

删除表空间,在修改oracle控制文件的信息的同时也删除物理文件
drop tablespace test1;
删除日志文件,在修改oracle控制文件的信息的同时也删除物理文件
alter database drop logfile group 6;

访问实例
select  * from v$instance;
INSTANCE_NUMBER INSTANCE_NAME    HOST_NAME                                                       VE
--------------- ---------------- ---------------------------------------------------------------- --
              1 gist             WWW-976307DA5D4                                                 9.

访问后台进程
select * from v$bgprocess;

访问SGA
SQL> select * from v$sga;

NAME                      VALUE
-------------------- ----------
Fixed Size               453492
Variable Size         109051904
Database Buffers       25165824
Redo Buffers             667648

访问DATABASE,如果不能执行,先执行alter database mount打开控制文件
select * from v$database;
      DBID NAME      CREATED    RESETLOGS_CHANGE# RESETLOGS_ PRIOR_RESETLOGS_CHANGE# PRIOR_RESE LOG_
---------- --------- ---------- ----------------- ---------- ----------------------- ---------- ----
1091306975 GIST      28-6月 -10            190578 28-6月 -10                       1 12-5月 -02 NOAR

查询DATABASE结构下的所有表空间
 select * from v$tablespace;
   TS# NAME                           INC
------ ------------------------------ ---
    12 TABLESPACE1                    YES
    13 TSM                            YES
    14 S2AQ2                          YES
    15 S2AQTEMP                       YES

由哪些数据文件组成
select * from v$datafile;
     FILE# CREATION_CHANGE# CREATION_T        TS#     RFILE# STATUS  ENABLED    CHECKPOINT_CHANGE# C
---------- ---------------- ---------- ---------- ---------- ------- ---------- ------------------ -
         1               11 12-5月 -02          0          1 SYSTEM  READ WRITE            1785202 1
         2           187697 12-5月 -02          1          2 ONLINE  READ WRITE            1785202 1
         3             6283 12-5月 -02          3          3 ONLINE  READ WRITE            1785202 1
         4             6302 12-5月 -02          4          4 ONLINE  READ WRITE            1785202 1
         5             6324 12-5月 -02          5          5 ONLINE  READ WRITE            1785202 1
         6             6343 12-5月 -02          6          6 ONLINE  READ WRITE            1785202 1
         7             6363 12-5月 -02          7          7 ONLINE  READ WRITE            1785202 1
         8             6382 12-5月 -02          8          8 ONLINE  READ WRITE            1785202 1
         9             6401 12-5月 -02          9          9 ONLINE  READ WRITE            1785202 1
        10             6420 12-5月 -02         10         10 ONLINE  READ WRITE            1785202 1
        11           209205 28-6月 -10         12         11 ONLINE  READ WRITE            1785202 1

     FILE# CREATION_CHANGE# CREATION_T        TS#     RFILE# STATUS  ENABLED    CHECKPOINT_CHANGE# C
---------- ---------------- ---------- ---------- ---------- ------- ---------- ------------------ -
        12           226097 28-6月 -10         13         12 ONLINE  READ WRITE            1785202 1
        13           866142 03-7月 -10         14         13 ONLINE  READ WRITE            1785202 1

有哪些日志文件组成
 select * from v$log;

GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
------ ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
     1          1         32  104857600          1 NO  CURRENT                1785201 11-10月-10
     2          1         30  104857600          1 NO  INACTIVE               1725945 10-10月-10
     3          1         31  104857600          1 NO  INACTIVE               1752348 10-10月-10

打开DATABASE
alter database open;

Oracle启动过程
start [nomount|mount|open]
nomount--startup instance
 used to create db,create controlfile
mount----open controlfile
 used to change log mode,rename file, db recovery

修改SESSION语言
alter session set nls_language=american
Session altered

无法启动已在运行的 ORACLE --- 请首先关闭
cannot start already-runing ORACLE - shut it down first

强制重启
 SQL> startup
ORA-01081: 无法启动已在运行的 ORACLE --- 请首先关闭
SQL> startup force ----------强制重启
ORACLE 例程已经启动。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。

使用强制启动的参数文件[init.ora],指定启动到哪个状态[mount]
startup force pfile=d:\oracle\admin\gist\pfile\init.ora mount

启用restricted[受限制]的session权限
alter system enable restricted session;
授予某用户restricted权限,否则该用户不能登录
grant restricted session to username;

启动数据库为只读状态
shutdown immediate
startup mount
alter database open read only;----------只能查看,不能修改

关闭数据库的四种方式
1. shutdown immediate ----干净关闭
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
2. shutdown abort -----脏关闭
SQL> shutdown abort
ORACLE 例程已经关闭
3. shutdown normal
4. shutdown transactional

查看所有用户
select * from dba_users;
查看所有对象
select * from dba_objects;
查看用户表
select * from user_tables;
查看我拥有的可以访问的表
select * from all_tables;


***************************************************************************
Oracle启动三种状态下的访问结果
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup nomount;-----------------------------------1. nomount状态
ORACLE 例程已经启动。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
SQL> select * from v$instance
  2  /

INSTANCE_NUMBER INSTANCE_NAME                    HOST_NAME
--------------- -------------------------------- -------------------
              1 gist                             WWW-976307DA5D4
SQL> select * from v$sga;

NAME                                          VALUE
---------------------------------------- ----------
Fixed Size                                   453492
Variable Size                             109051904
Database Buffers                           25165824
Redo Buffers                                 667648
SQL> select * from v$tablespace;
select * from v$tablespace
              *
ERROR 位于第 1 行:
ORA-01507: ??????


SQL> alter session set nls_language=american;-----------设置语言

Session altered.

SQL> select * from v$tablespace;
select * from v$tablespace
              *
ERROR at line 1:
ORA-01507: database not mounted -------------提示没有mount,不能访问tablespace;

SQL> alter database mount;--------------------------------2. mount状态,可以访问database;

Database altered.

SQL> select * from v$tablespace;--------------------------查看表空间

       TS# NAME                           INC
---------- ------------------------------ ---
        12 TABLESPACE1                    YES
        13 TSM                            YES
        14 S2AQ2                          YES
        15 S2AQTEMP                       YES

15 rows selected

select * from v$database;--------------------可以访问database;

      DBID NAME      CREATED   RESETLOGS_CHANGE# RESETLOGS PRIOR_RESETLOGS_CHANGE# PRIOR_RES LOG_MOD
---------- --------- --------- ----------------- --------- ----------------------- --------- -------
1091306975 GIST      28-JUN-10            190578 28-JUN-10                       1 12-MAY-02 NOARCHI

SQL> select * from dba_users;
select * from dba_users
              *
ERROR at line 1:
ORA-01219: database not open: queries allowed on fixed tables/views only -----------不能访问数据字典,数据库没有打开,只能访问固定表和视图

SQL> alter database open;--------------------------------3. database open 状态,可以查看数据字典

Database altered.

SQL> desc dictionary
 Name                                                  Null?    Type
 ----------------------------------------------------- -------- ------------------------------------
 TABLE_NAME                                                     VARCHAR2(30)
 COMMENTS                                                       VARCHAR2(4000)

SQL> desc v$fixed_table------------------------------查看动态性能表结构
 Name                                                  Null?    Type
 ----------------------------------------------------- -------- ----------------
 NAME                                                           VARCHAR2(30)
 OBJECT_ID                                                      NUMBER
 TYPE                                                           VARCHAR2(5)
 TABLE_NUM                                                      NUMBER

select * from v$fixed_table;----------------------------查看动态性能表的所有信息

**************************************************************************
执行存储过程
SQL> set serveroutput on
SQL> execute dbms_output.put_line(‘test string1‘)
test string1

PL/SQL procedure successfully completed.

重复执行上一条SQL的两种方法
SQL> select * from v$controlfile;-------------------------重复执行上一条SQL的两种方法

STATUS  NAME
------- --------------------------------------
        D:\ORACLE\ORADATA\GIST\CONTROL01.CTL

SQL> 1
  1* select * from v$controlfile
SQL> /

STATUS  NAME
------- --------------------------------------
        D:\ORACLE\ORADATA\GIST\CONTROL01.CTL

SQL> 1
  1* select * from v$controlfile
SQL> run
  1* select * from v$controlfile

STATUS  NAME
------- --------------------------------------
        D:\ORACLE\ORADATA\GIST\CONTROL01.CTL

 


*************************************************


---------------------------------------------SQL*Plus执行SQL时修改前一条执行语句

SQL> select * from v$tablespace; ------最初执行的SQL
       TS# NAME                           INC
---------- ------------------------------ ---
        12 TABLESPACE1                    YES
        13 TSM                            YES
SQL> 1                           ------重复上一条SQL,按1
  1* select * from v$tablespace 
SQL> 2 where name=‘TSM‘; --------------增加条件语句,按2,加查询条件[where name=‘TSM‘]
SQL> run-------------------------------执行,输入run
  1  select * from v$tablespace
  2* where name=‘TSM‘

       TS# NAME                           INC
---------- ------------------------------ ---
        13 TSM                            YES

SQL> c /name/inc/----------------------修改查询条件中的name,改为inc
  2* where inc=‘TSM‘
SQL> run
  1  select * from v$tablespace
  2* where inc=‘TSM‘
where inc=‘TSM‘
      *
ERROR 位于第 2 行:
ORA-00904: "INC": 无效的标识符


SQL> c /inc/name------------------------修改查询条件中的inc为name
  2* where name=‘TSM‘
SQL> run
  1  select * from v$tablespace
  2* where name=‘TSM‘

       TS# NAME                           INC
---------- ------------------------------ ---
        13 TSM                            YES

************************************************************************************

获得控制文件的信息
SQL> show parameter control-------------获得控制文件的信息

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time        integer     7
control_files                        string      D:\oracle\oradata\gist\CONTROL

 

*******************************************************************************


添加控制文件                                                  --------添加控制文件
六步骤:
1 -----先查询添加前的控制文件信息
SQL> select * from v$controlfile
  2  /

STATUS  NAME
------- ---------------------------------------
        D:\ORACLE\ORADATA\GIST\CONTROL01.CTL
        D:\ORACLE\ORADATA\GIST\CONTROL02.CTL
        D:\ORACLE\ORADATA\GIST\CONTROL03.CTL
2 ----执行添加控制文件语句
SQL> alter system set control_files=
  2  ‘D:\ORACLE\ORADATA\GIST\CONTROL01.CTL‘,
  3  ‘D:\ORACLE\ORADATA\GIST\CONTROL02.CTL‘,
  4  ‘D:\ORACLE\ORADATA\GIST\CONTROL03.CTL‘,
  5  ‘D:\ORACLE\ORADATA\GIST\CONTROL04.CTL‘
  6  SCOPE=SPFILE;

系统已更改。
3 ----关闭数据库
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
4 ----添加物理控制文件
  把D:\ORACLE\ORADATA\GIST\目录下的控制文件[如CONTROL01.CTL]复制一份到当前目录,
  改名为CONTROLO4.CTL
5 ----启动数据库
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
6 ----重新查询,此时的结果集中就多了一个控制文件CONTROL04.CTL
SQL> select * from v$controlfile;

STATUS  NAME
------- -----------------------------------------
        D:\ORACLE\ORADATA\GIST\CONTROL01.CTL
        D:\ORACLE\ORADATA\GIST\CONTROL02.CTL
        D:\ORACLE\ORADATA\GIST\CONTROL03.CTL
        D:\ORACLE\ORADATA\GIST\CONTROL04.CTL
7 ----修改D:\oracle\admin\gist\pfile目录中的init.ora文件
      修改control_files中添加D:\oracle\oradata\gist\CONTROL04.CTL
 # File Configuration
###########################################
control_files=("D:\oracle\oradata\gist\CONTROL04.CTL","D:\oracle\oradata\gist\CONTROL01.CTL", "D:\oracle\oradata\gist\CONTROL02.CTL", "D:\oracle\oradata\gist\CONTROL03.CTL")
8 ----关闭数据库
 shutdown immediate
9 ----sartup pfile="d:\oracle\ora92/database\init.ora";

******************************************************************
------------------------------------------------------------备份控制文件的两种方式

1. ----在Oracle运行中动态备份二进制的控制文件
SQL> alter database backup controlfile to ‘c:\controlfile_bak.bak
2. ----翻译创建控制文件的脚本信息
SQL> alter database backup controlfile to trace;
执行后会在D:\oracle\admin\gist\udump目录下生成gist_ora_3416.trc文件,是创建控制文件的脚本信息,用写字板可以直接打开

控制文件生成脚本文件存放目录
SQL> show parameter user_dump
NAME                                 TYPE        VALUE
------------------------------------ ----------- ----------------------------
user_dump_dest                       string      D:\oracle\admin\gist\udump

*********************************************************************

-------------------------------------------------查看存档日志归档模式

SQL> archive log list
数据库日志模式             非存档模式
自动存档             禁用
存档终点            D:\oracle\ora92\RDBMS
最早的概要日志序列     35
当前日志序列           37

自动存档设为启用
SQL> alter system archive log start;
转换日志记录组
SQL> alter system switch logfile;
强制同步
SQL> alter system checkpoint;
添加日志文件
SQL> alter database add logfile group 6
  2  ‘d:\oracle\oradata\gist\redo06.ora‘ size 10m;
查看日志文件
select * from v$log;-----------------查看日志组

添加日志成员log member
SQL> alter database add logfile member
SQL> 1
  1* alter database add logfile member
SQL> 2 ‘d:\oracle\oradata\gist\redo06a.ora‘
SQL> run
  1  alter database add logfile member
  2* ‘d:\oracle\oradata\gist\redo06a.ora‘
‘d:\oracle\oradata\gist\redo06a.ora‘
                                   *
ERROR 位于第 2 行:
ORA-00946: 缺少 TO 关键字


SQL> a to group 6-----------------------------------a 的意思代表在上条SQL后面追加语句如加to group 6
  2* ‘d:\oracle\oradata\gist\redo06a.ora‘to group 6
SQL> run
  1  alter database add logfile member
  2* ‘d:\oracle\oradata\gist\redo06a.ora‘to group 6

数据库已更改。

SQL> set wrap off
SQL> set linesize 100
SQL> select * from v$logfile;-----查看所有日志组的日志成员

    GROUP# STATUS  TYPE    MEMBER
---------- ------- ------- -------------------------------------
         3         ONLINE  D:\ORACLE\ORADATA\GIST\REDO03.LOG
         2 STALE   ONLINE  D:\ORACLE\ORADATA\GIST\REDO02.LOG
         1 STALE   ONLINE  D:\ORACLE\ORADATA\GIST\REDO01.LOG
         6         ONLINE  D:\ORACLE\ORADATA\GIST\REDO06.ORA
         6 INVALID ONLINE  D:\ORACLE\ORADATA\GIST\REDO06A.ORA--------添加的日志member

删除日志文件组
alter database drop logfile group 6;
注意:只能删除控制文件的信息,不能删除物理文件
D:\oracle\oradata\gist目录中的REDO06A.ORA及REDO06.ORA依然存在
约束条件:
current log group当前日志组不能删
active log group 活动日志组不能删
not archived log group 未归档日志组不能删

删除日志组成员
限制条件:当前日志组的成员不能删除,日志组最少要有一个成员
SQL> alter database drop logfile member ‘D:\ORACLE\ORADATA\GIST\REDO06A.ORA‘;

清空日志文件-----也称重新初始化日志文件
alter database clear logfile group 2;
alter database clear unarchived logfile group 5;----------------清空未归档日志组

日志文件更名
先将要更名的日志文件的物理文件重命名,再用命令修改------当前日志组文件不能重命名
alter database rename file ‘D:\ORACLE\ORADATA\GIST\REDO06.ORA‘
to ‘D:\ORACLE\ORADATA\GIST\REDO06a.ORA‘

SQL> show parameter db_create---------------查看在线日志文件能做多少个多功
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------
db_create_file_dest                  string      d:\oracle\oradb
db_create_online_log_dest_1          string
db_create_online_log_dest_2          string
db_create_online_log_dest_3          string
db_create_online_log_dest_4          string
db_create_online_log_dest_5          string
SQL> alter system set db_create_online_log_dest_1=‘d:\oracle\oralog‘;

系统已更改。

SQL> alter database add logfile group 6;---------在新目录中添加日志文件
alter database add logfile group 6
*
ERROR 位于第 1 行:
ORA-01184: 日志文件组6已经存在


SQL> 1
  1* alter database add logfile group 6
SQL> c /6/5
  1* alter database add logfile group 5
SQL> run
  1* alter database add logfile group 5

数据库已更改。
会在d:\oracle\oralog目录里自动添加O1_MF_5_6C976N00_.LOG日志文件,初始大小为100M
删除日志文件组同时删除物理文件
alter database drop logfile group 5;


53:54
用来数据恢复
非归档日志模式:只能做整体备份,而且要在离线状态下才能备份offline 冷备份
归档日志模式:可以做局部的备份,而且可在线状态下备份。online 热备份
数据库缺省为非归档模式
------------------------查看日志模式
SQL> archive log list
数据库日志模式             非存档模式
自动存档             禁用
存档终点            D:\oracle\ora92\RDBMS
最早的概要日志序列     37
当前日志序列           40

归档日志模式转换到非归档日志模式步骤:
1. shutdown immediate
2. startup mount
3. alter database noarchivelog;---------------归档转到非归档
或者是alter database archivelog;--------------非归档转到归档

SQL> alter system archive log start;----------"自动存档"设为"启用"
SQL> alter system archive log stop;-----------"自动存档"设为"禁用"

4. alter database open;

 

查看有多少归档日志文件
select * from v$archived_log;
查看归档日志参数
show parameter log_archive;

使用日志文件进行数据恢复挖掘:
步骤:
1. ------------设定文件目录。修改初始参数文件d:\oracle\admin\gist\pfile\init.ora
###########################################
# Cache and I/O
###########################################
db_block_size=8192
db_cache_size=25165824
db_file_multiblock_read_count=16
#2010.10.13 新增,作用:对日志文件进行分析
utl_file_dir=d:\oracle\admin\gist\cdump
增加utl_file_dir=d:\oracle\admin\gist\cdump

2. -------------重启数据库
SQL> shutdown immediate
SQL> startup;

3. -------------建立目录文件
SQL> desc dbms_logmnr;
SQL> desc dbms_logmnr_d;
如果以上两条指令执行无效,则执行下面的构建脚本[创建标准数据包]:
SQL> start d:\oracle\ora92\rdbms\admin\catproc.sql;----------------运行脚本
SQL> desc dbms_output;
更改部分数据作为参考
SQL> update scott.emp
  2  sal=801
  3  where empno=7369;
sal=801
   *
ERROR 位于第 2 行:
ORA-00971: 缺少 SET 关键字


SQL> c /sal/set sal/
  2* set sal=801
SQL> run
  1  update scott.emp
  2  set sal=801
  3* where empno=7369

已更新 1 行。

SQL> commit;
查看当前日志组
select * from v$log;
当前日志组文件目录为D:\oracle\oradata\gist\REDO02.LOG

4. -------------使用build存储过程来构建数据字典文件
execute dbms_logmnr_d.build(‘gistdict.ora‘,‘d:\oracle\admin\gist\cdump‘);
5. -------------加入分析日志文件
SQL> execute dbms_logmnr.add_logfile(‘d:\oracle\oradata\gist\redo02.log‘,dbms_logmnr.new);
SQL> desc dbms_logmnr;
6. ------------开始分析
SQL> execute dbms_logmnr.start_logmnr(dictfilename=>‘d:\oracle\admin\gist\cdump\gistdict.ora‘);

 

************************************************************************************

ORACLE9i启动(无论是手动启动或自动启动)都采用服务器参数文件(即spfilesid.ora文件)来启动数据库实例。Spfilesid.ora文件是一个二进制的文件。是在数据库创建期间由系统自定创建的
查看参数文件的位置
SQL> show parameter spfile;
or show parameter file;
查看参数文件中的值D:\oracle\ora92\database\SPFILEGIST.ORA
SQL> show parameter db_block_size;

通过SPFILE初始化参数文件SPFILEGIST.ORA创建PFILE初始化参数文件initSID.ora文件
SQL> create pfile=‘D:\oracle\ora92\database\initGIST.ora‘
  2  from spfile=‘D:\oracle\ora92\database\SPFILEGIST.ora‘;
initSID.ora可以用编辑器打开修改

指定启动的初始化参数文件
SQL> startup pfile=D:\oracle\ora92\database\initGIST.ora

**********************************************************

表空间


分为系统表空间与非系统表空间
tablespace----------------logical area逻辑区域,一个段只能放在一个表空间里,由一个或多个物理数据文件组成
segment段-----------------specific logical structure occupied space collection某个特定的逻辑结构所占用的空间集合
 分为四类段:table表段/index索引段/temp临时段/rollback回滚段,段可跨数据文件,段在申请空间分配时是通过分区得到的
extent分区----------------allocate unit是一个分配单位,分区的单位一定是块的整数倍,区不能跨数据文件
block块-------------------use&store unit是Oracle中的使用和存储单位,一个分区由多个物理块组成

select * from v$tablespace;
查看数据文件
select * from v$datafile;
--------------------------------------------------------------------------------查看表空间与数据文件及用户的对应关系
select t1.name, t2.name from v$tablespace t1, v$datafile t2 where t1.ts#=t2.ts#;
SQL> set wrap off
SQL> set linesize 1000
SQL> 1
  1* select t1.name,t2.name
SQL> 2 from v$tablespace t1, v$datafile t2
SQL> 3 where t1.ts#=t2.ts#;
SQL> run
  1  select t1.name,t2.name
  2  from v$tablespace t1, v$datafile t2
  3* where t1.ts#=t2.ts#

NAME                           NAME
------------------------------ --------------------------------------------
SYSTEM                         D:\ORACLE\ORADATA\GIST\SYSTEM01.DBF
UNDOTBS1             &

人气教程排行