Oracle培训的笔记

1.create spfile='spfile.ora' from pfile='initaa.ora';
2.show parameter db_name/instance_name/spfile
3.修改静态参数
alter system set audit_trail = 'db' scope=spfile
4.修改动态参数
alter system set resource_limit = true scope=both
5.以sys和scott建立两个并发会话,scott执行
   insert into dept values(55,default,default);
   在sys 使用transactional关闭数据库
   scott提交事务后,检查sys会话
   用startup mount启动,显示例程状态
   以只读方式打开,显示例程状态
conn / as sysdba                      conn scott/tiger
      insert into dept value(55,default,default);
shutdown transactional;
      commit;
startup mount
select status from v$instance;
startup open read only
select status from v$instance;
 
6.force方式重新启动db

startup force;
7.显示alert文件所在目录,删除该目录下所有文件,
关闭数据库,然后重新启动,查看alert文件确定打开时间
show parameter dump/user_dump_dest
startup force/ shutdown immediate   startup

8.以system用户建立会话,执行
alter session set sql_trace=true;
select * from scott.dept;
update emp set sal=1000 where empno=7788;
commit;
alter session set sql_trace=false;
显示用户进程跟踪文件所在目录,并查看内容
connect system/oracle;
alter session set sql_trace=true;
select * from scott.dept;
update scott.emp set sal=1000 where empno=7788;
commit;
alter session set sql_trace=false;
show parameter user_dump_dest;


9.建立数据库(OMF方式)新的SID=test
  1)准备参数文件
     create spfile from pfile
     create pfile='initTEST.ora' from spfile
  修改参数:
#非*开头的可以先删除,所有相关的目录要建立起来
*.audit_file_dest='f:\test\adump'
*.background_dump_dest='f:\test\bdump'
*.compatible='10.2.0.1.0'
*.core_dump_dest='f:\test\cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='test'
*.db_recovery_file_dest='f:\test\flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=200278016
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=601882624
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1' #undo表空间的名车,注意
*.user_dump_dest='f:\test\udump'
#在11g中的参数是
#diagnostic_dest='f:\test\diag\'
#下面几个参数是omf方式建立必须的参数设置,这样可以把原来的control_files配置列表删除
*.db_create_file_dest='f:\'
*.db_create_online_log_dest_1='f:\'
*.db_create_online_log_dest_2='g:\' #控制文件和重做日志文件组,分别放在不同的盘上
  建立spfile
        create spfile='spfileTEST.ora' from pfile='initTEST.ora';
2) 建立oracle服务和口令文件,指定新数据库的sys密码为test
oradim -new -sid test -intpwd test
3) 启动例程,设置环境变量
shell> set ORACLE_SID=test
sqlplus sys/test as sysdba
startup nomount #启动到nomount方式
#可以先查看一下参数设置
#show parameter db_name/undo_tablespace
4)建立数据库
create database test
  logfile
    group 1 size 40m,group 2 size 40m #控制文件,重做日志文件组db_create_online_log_dest_n参数指定
    datafile size 400m #系统表空间大小
    sysaux datafile size 100m #sysaux表空间
    default temporary tablespace temp #临时表空间
    undo tablespace undotbs1 datafile size 50m #undo 表空间大小 undo_tablespace参数
    character set ZHS16GBK #字符集
5)安装数据字典和PL/SQL包
@?\rdbms\admin\catalog
@?\rdbms\admin\catproc
6)安装profile,以system用户安装
conn sys/manager
@?\sqlplus\admin\pupbld
7)网络配置
让客户端应用可以访问数据库
1>配置监听程序,服务器端 Net Manager
监听位置
协议 tcp/ip或者其他可选,一般为tcp/ip
主机 数据库服务器的名称
端口 客户端连接到服务器端的端口,默认1521
数据库服务
全局数据库名:应为db_name.db_domain
oracle主目录:应为$ORACLE_HOME
SID:$ORACLE_SID
重新启动监听程序
lsnrctl start [监听程序名称]  -----lsnrctl start listener1

2>配置网络服务名,客户端配置
服务命名
服务器的地址以及SID,端口等
客户端就可以用 conn USERNAME/PASSWORD@服务名的方式连接到配置好的数据库服务器
从pfile回复数据库,电脑重启注册表的信息被删除
  1)把pfile(initTEST.ora)复制到oracle存放pfile的默认目录
     可以把原来有OMF建立的control_file的配置,
     +
     *.control_file='f:\test\controlfile\control01.ctl','g:\test\controlfile\control02.ctl'
  2)重建oracle例程
     oradim -new test -intpwd test
  3)set ORACLE_SID=test
     sqlplus /nolog
     conn sys/test as sysdba;
     create spfile from pfile
     startup
10。以system用户连接到数据库,然后完成以下任务
    1.显示当前用户所有的表名(user_tables)
select table_name from user_tables;
    2.显示所有数据库用户名(dba_users)
SELECT username,user_id FROM dba_users;
    3.显示所有数据文件名(v$datafile)
SELECT file#,name FROM v$datafile;
    4.显示所有控制文件名(v$controlfile)
SELECT name,status FROM v$controlfile;
    5.显示数据库名v$database,例程名和状态(v$instance)
select * from v$instance;
    6.显示所有数据库表名(dba_tables);
SELECT table_name FROM dba_tables;
11。修改数据库的control_files
    1)select name from v$controlfile;
    2)alter system set control_files=
'f:\test\controlfile\CONTROL01.CTL',
'g:\test\controlfile\CONTROL02.CTL'
SCOPE=SPFILE;
    3)shutdown
    4)用host cp(linux)或者host copy命令建立相应的控制文件(一定要在关闭数据库的状态下复制文件)
    5)startup
12.重做日子练习
    1)增加2个日志组,尺寸分别为100M和50M
     ALTER DATABASE ADD LOGFILE GROUP 3
('f:\test\log3a.log',
'f:\test\log3b.log')
size 50M;
    ALTER DATABASE ADD LOGFILE GROUP 4
('f:\test\log4a.log',
'g:\test\log4b.log')
size 100M;
    2)显示日志组号和成员v$logfile
      SELECT GROUP#,MEMBER FROM V$LOGFILE;
    3)显示日志组组号、状态,尺寸,日志序列号v$log
        SELECT GROUP#,SEQUENCE#,STATUS FROM V$LOG;
SELECT GROUP#,SEQUENCE#,STATUS,BYTES FROM V$LOG;
    4)删除当前正在使用的日志组
ALTER SYSTEM SWITCH LOGFILE; 强制切换日志
ALTER SYSTEM CHECKPOINT; 强制检查点
ALTER DATABASE DROP LOGFILE GROUP 4;
ALTER DATABASE DROP LOGFILE MEMBER;
ALTER DATABASE ADD LOGFILE MEMBER
'g:\test\log3b.log' TO GROUP 3;
13.表空间(要删除文件,首先需要删除表空间,才能删除相关的文件)
建立表空间data01,数据文件d:\test\data01.dbf,尺寸50M,区尺寸128k
CREATE TABLESPACE DATA01
DATAFILE 'f:\test\data01.dbf' SIZE 50M
UNIFORM SIZE 128K;
建立大文件表空间,data02,数据文件d:\test\data02.dbf,尺寸200M,区尺寸256k
CREATE BIGFILE TABLESPACE DATA02
DATAFILE 'f:\test\data02' SIZE 200M
UNIFORM SIZE 256K;
建立undo表空间undotbs2,数据文件d:\test\undo02.dbf,尺寸100m
CREATE UNDO TABLESPACE UNDOTBS2
DATAFILE 'f:\test\undo02.dbf' SIZE 100M;
建立临时表空间temp2,临时文件d:\test\temp02.dbf,尺寸10m
CREATE TEMPORARY TABLESPACE temp02
TEMPFILE 'f:\test\temp02.dbf' SIZE 10M;
create table a1(cola int) tablespace data01 storage(minextents 2);
create table a2(colo int) tablespace data02 storage(minextents 2);
显示a1和a2端的区个数和尺寸(user_segments)
SELECT TABLESPACE_NAME,SEGMENT_NAME,BYTES,EXTENTS FROM USER_SEGMENTS
WHERE SEGMENT_NAME='A1' OR SEGMENT_NAME='A2';
显示所有表空间名称和区管理方式(dba_tablespaces);
SELECT TABLESPACE_NAME,SEGMENT_SPACE_MANAGEMENT
FROM DBA_TABLESPACES;
14.建立DATA03表空间,数据文件d:\test\data03.dbf,尺寸10m,激活自动扩展
每次扩展10M,
CREATE TABLESPACE data03
DATAFILE 'f:\test\data03.dbf' SIZE 10M
AUTOEXTEND ON
NEXT 10M;
设置数据库默认表空间为data03
ALTER DATABASE DEFAULT TABLESPACE DATA03;
脱机data03表空间,然后建立表a4?
ALTER TABLESPACE DATA03 OFFLINE;
建立表会出错
联机data03表空间,重建表a4
ALTER TABLESPACE DATA03 ONLINE;
15.练习
使用ALTER SYSTEM设置数据文件位置为e:\
show parameter create;
ALTER SYSTEM SET db_create_file_dest = 'g:\';
建立OMF表空间data05,尺寸,100M
CREATE TABLESPACE data05;
建立OMF表空间data06,尺寸,20M,区尺寸256k
CREATE TABLESPACE data06 DATAFILE SIZE 20M UNIFORM SIZE 256K;
在data06上建立a6表
CREATE TABLE a6(cola int) tablespace data06;
删除data06表空间以及对象
DROP TABLESPACE data06 INCLUDING CONTENTS;
显示表空间data05的数据文件名以及尺寸(dba_data_files)
DESC DBA_DATA_FILES;
SELECT TABLESPACE_NAME,STATUS,BYTES,FILE_NAME FROM DBA_DATA_FILES;

16.移动SYSTEM表空间文件
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area  603979776 bytes
Fixed Size                  1250380 bytes
Variable Size             180358068 bytes
Database Buffers          415236096 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。

SQL> ALTER DATABASE RENAME FILE 'F:\TEST\DATAFILE\O1_MF_SYSTEM_40OGHBXS_.DBF'
  2  TO 'g:\test\system01.dbf';

数据库已更改。

SQL> ALTER DATABASE OPEN;

数据库已更改。

17.建立undo表空间,undotbs4,尺寸100M
CREATE UNDO TABLESPACE undotbs4
DATAFILE 'f:\test\undotbs4.dbf' SIZE 100M;
显示当前正在使用的undo表空间
show parameter undo;
删除当前正在使用的undo表空间
ALTER SYSTEM SET UNDO_TABLESPACE=undotbs4;
DROP TABLESPACE UNDOTBS1;

18.日志
显示表空间SYSTEM的数据文件名和尺寸(DBA_DATA_FILES)
  SELECT FILE_NAME,BYTES FROM DBA_DATA_FILES
   WHERE TABLESPACE_NAME='SYSTEM';
显示所有数据文件的编号,名称和检查点时刻的SCN(V$DATAFILE)
  SELECT FILE#,NAME,CHECKPOINT_CHANGE#
FROM V$datafile;
显示日志组编号,起始SCN(V$LOG)
SELECT GROUP#,FIRST_CHANGE#,SEQUENCE#
FROM v$log;
显示数据库名,日志模式,当前SCN值
SQL> SELECT NAME,LOG_MODE,CURRENT_SCN FROM v$database;

NAME      LOG_MODE     CURRENT_SCN
--------- ------------ -----------
TEST      NOARCHIVELOG      263778
显示所有控制文件名称V$CONTROLFILES
SELECT * FROM v$controlfile;
显示日志历史的序号,其实SCN和切换SCN(V$LOGHIST)
SELECT * FROM v$loghist;

19.在恢复的时候通过以下语句看恢复的进度。
select undoblocksdone/undoblockstotal from v$fast_start_transactions;

20.归档日志
显示数据库名及日志模式
SELECT NAME,LOG_MODE FROM V$DATABASE;
按照步骤转变数据库为ARCHIVELOG模式
shutdown immediate;
startup mount;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
显示数据库名及日志模式
SELECT NAME,LOG_MODE FROM V$DATABASE;
手工切换日志2次,然后显示所生成的归档日志名(v$archived_log)
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
DESC v$ARCHIVED_LOG;
SELECT NAME,SEQUENCE# FROM V$ARCHIVED_LOG;

21.归档位置
在d,e,f盘建立3个归档目录archive
host mkdir f:\archive;
host mkdir g:\archive;

修改一下参数
log_archive_dest_1='location='d:\archive'
log_archive_dest_2='location='e:\archive'
log_archive_dest_3='location='f:\archive'
log_archive_format='%s_%r.%t'
log_archive_max_process=7
重新启动数据库
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='location=f:\archive';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='location=g:\archive';
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%s_%r.%t' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=7;
shutdown immediate;
startup
手工切换日志3次,显示所有归档日志名称和序列号(V$ARCHIVED_LOG)
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
SELECT NAME,SEQUENCE# FROM V$ARCHIVED_LOG;
禁用位置2,手工切换日志,然后显示所有归档日志名称和序列号
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER;
ALTER SYSTEM SWITCH LOGFILE;
激活位置2,手工切换日志,然后显示所有归档日志名称和序列号
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE;
ALTER SYSTEM SWITCH LOGFILE;
SELECT NAME,SEQUENCE# FROM V$ARCHIVED_LOG;

22.rman练习
rman sys/test@test
显示所有配置参数
show all
执行以下命令进行配置
configure channel device type disk 'd:\backup\%d_%s.bak';
configure retention policy to redundancy 2;
执行backup tablespace data01;备份3次,每次备份后执行report obsolete
删除旧的备份(delete obsolete noprompt)

configure channel device type disk format='d:\backup\%d_%s.bak';
configure retention policy to redundancy 2;
backup tablespace data01;
report obsolete;
backup tablespace data01;
report obsolete;
backup tablespace data01;
report obsolete;
delete noprompt obsolete ;#注意noprompt必须在前面

23.RMAN
配置rman
configure channel device type disk format 'e:\backup\%d_%s.bak';
configure retention policy to redundancy 2;
报告3天威备份的数据文件,报告备份次数少于2次的数据文件
report need backup days 3;
report need backup redundancy 2;
备份users表空间2次
backup tablespace 'users'
报告3天威备份的数据文件,报告备份次数少于2次的数据文件
report need backup days 3;
report need backup redundancy 2;
列出users表空间的备份集,查看SCN
list backup of tablespace 'users';
分别删除所有备份集和副本
delete backup;
delete copy;
建立数据文件4的备份集
backup datafile 4;
使用并行化方式备份数据库(并行度4)
configure device type disk parallelism 4;
backup database;
备份过去一天的归档日志
backup format 'd:\backup\%t_%s_%p'
archivelog all delete all input;

分别备份当前控制文件和spfile
backup current controlfile;
backup spfile;
列出当前控制文件的备份集
list backup
list copy of datafile/..
列出所有数据文件的副本
list copy of database;
使用并行化方式建立所有数据文件副本
configure device type disk parallelism 4;
backup as copy database;
建立控制文件副本
backup as copy current controlfile;

分别删除所有的备份集和副本
delete backup;
delete copy;
在数据库上执行增量0级备份
backup incremental level 0  database;

在数据库上执行增量1级备份
backup incremental level 1  database;
在数据库上执行累积1级备份
backup incremental  level 1 cumulative database;
备份users表空间,设置标记为users
backup  tablespace users tag=users;
列出表空间users的备份集,并检查标记

list backup of users system;


恢复数据库
run {
startup force mount;
restore database;
recover database;
alter database open;
}
回复表空间system
run{
startup mount;
restore datafile 1;
recover datafile 1;
alter database open;
};
恢复其他表空间数据文件,磁盘损坏,需要保存到其他地方,在open状态恢复
run{
  startup mount;#装载数据库
  sql 'alter database datafile 4 offline '; #使损坏的数据文件脱机
  alter database open;#打开数据库
  set newname for datafile 4 to 'd:\newname.dbf';#设置数据文件的新位置
  restore datafile 4;#转储数据文件
  switch datafile 4 ;#切换数据文件
  recover datafile 4;#恢复数据文件
  sql 'alter database datafile 4 online';#使数据文件联机
}
基于时间点恢复
先要在os设置NLS_DATE_FORMAT
run {
shutdown immediate ;#关闭数据库
startup mount;#装载数据库
set until time='2008-04-22:11:22:00'#设置恢复的时间点,NLS_DATE_FORMAT一致
restore database;#转储数据库
recover database;#恢复数据库
alter database open resetlogs;#打开数据库(RESETLOGS一定要带)
backup database;#备份数据库
}
基于SEQUENCE恢复
run{
startup mount;#装载数据库
set until sequence 5 thread 1;#设置要恢复到的日志序列号
restore database;#转储数据库
recover database;#恢复数据库
alter database open resetlogs;#打开数据库RESETLOGS
#备份数据库
}

你可能感兴趣的:(oracle,sql,应用服务器,配置管理,F#)