Oracle数据库笔记(二)

Oracle数据库笔记(二)


用户


创建用户
create user user_name identified by user_password 
default tablespace tablespace_name
temporary tablespace temp
quota 10m/unlimited on tablespace_name
password expire      --登陆后需要重置密码
account lock/unlock
profile profile_name     --概要文件:限制用户使用系统资源的配置文件


授予用户连接权限
grant create session,resource to user_name;


改变用户参数
alter user user_name
default tablespace tablespace_name
quota 0/unlimited on tablespace_name   --0为收回使用权


删除用户
drop user user_name [cascade]   --cascade代表删除该用户下的数据库对象


概要文件
创建概要文件
create profile profile_name limit
connect_time 100
idle_time 40
sessions_per_user 10    --每个用户的最大会话数
查看概要文件
select * from dba_profiles where profile='PROFILE_NAME'


口令参数
执行以下文件会强制使用Oracle口令规则
F:\app\tdn084\product\11.2.0\dbhome_1\RDBMS\ADMIN\utlpwdmg.sql
其中修改概要文件
ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 180
PASSWORD_GRACE_TIME 7
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LOCK_TIME 1
PASSWORD_VERIFY_FUNCTION verify_function_11G;


删除概要文件
drop profile profile_name


给用户增加概要文件
创建用户时
create user user_name identified by user_password 
profile profile_name     --概要文件:限制用户使用系统资源的配置文件
已有用户
alter user user_name profile profile_name 


控制文件
查看控制文件
show parameter control_file
select * from v$controlfile


查看控制文件中的内容
select * from v$controlfile_record_section;


增加控制文件
1、首先查看数据库启动是从pfile还是spfile启动的
show parameter spfile;   如果value值不为空,则为spfile启动,否则为pfile启动


pfile位置:F:\app\tdn084\admin\orcl\pfile\init.ora.917201710114
spfile位置: F:\APP\TDN084\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORA


2、增加控制文件
如果是pfile启动,关闭数据库后,直接修改init.ora 文件,并将相应的控制文件复制到相应的目录下,改为增加的控制文件名称。
control_files=("F:\app\tdn084\oradata\orcl\control01.ctl", "F:\app\tdn084\flash_recovery_area\orcl\control02.ctl")
查看是否更改成功:show parameter control_file


如果是spfile启动
首先更改spfile文件:alter system set control_files='F:\app\tdn084\oradata\orcl\control01.ctl', 'F:\app\tdn084\flash_recovery_area\orcl\control02.ctl','F:\app\control03.ctl' scope=spfile;
关闭数据库,并将相应的控制文件复制到相应的目录下,改为增加的控制文件名称。
查看是否更改成功:show parameter control_file


备份控制文件
方法1、alter database backup controlfile to 'd:\control_file_backup_20180115.ora';
方法2、alter session set sql_trace=true;
alter database backup controlfile to trace;
show parameter user_dump_dest;


控制文件恢复
1、如果是单个控制文件丢失或者损坏,首先关闭数据库,将其他好的控制文件复制到相应的目录下,修改为被替换的文件的文件名
2、如果是所有控制文件丢失或者损坏,首先关闭数据库,将备份的控制文件复制到相应的目录下,修改为被替换的文件的文件名
3、通过跟踪文件重建控制文件.


重做日志文件


查看重做日志
select * from  v$log;
select * from  v$logfile;


查看数据库是否处于归档模式
archive log list;
如果不是归档模式,设置为归档模式
shutdown immediate;
startup nomount;
alter database mount;
alter database archivelog;
存档位置为 show parameter db_recovery_file_dest;


由归档模式设置为非归档模式
alter database noarchivelog;


在oracle9i中还需设置参数 log_archive_start=true;


添加日志组
alter database add logfile group 4    
('d:\redo4a.log','d:\redo4b.log')
size 10m;
不指定日志组,会自动添加日志组号
alter database add logfile  
('d:\redo4a.log','d:\redo4b.log')
size 10m;


删除日志组    --不能删除当前在用的日志
alter database 
drop logfile group 4;


添加日志成员   --新增的日志成员状态为INVALID 但是不影响使用
alter database add logfile member
'D:\APP\ZWS\ORADATA\ORCL\REDO01a.LOG' to group 1,
'D:\APP\ZWS\ORADATA\ORCL\REDO03a.LOG' to group 3; 


删除日志成员
alter database drop logfile member
'D:\APP\ZWS\ORADATA\ORCL\REDO01a.LOG',
'D:\APP\ZWS\ORADATA\ORCL\REDO03a.LOG';


修改日志文件大小
1、先删除该日志文件
alter database 
drop logfile group 4;
2、再新增该日志文件
alter database add logfile group 4    
('d:\redo4a.log','d:\redo4b.log')
size 50m;


不能修改当前在用的日志文件大小,可使用以下语句强制进行日志切换。
alter system switch logfile;
alter system checkpoint;  -- 加快使日志处于inactive状态。


查看是否启动日志归档进程
show parameter log_archive_start;
手动归档
ALTER DATABASE ARCHIVELOG MANUAL;  --将日志切换为手动归档模式 mount模式下
ALTER SYSTEM ARCHIVE LOG CURRENT/ALL;   --对所有日志进行归档     mount/open模式下
查看日志归档进程数
show parameter log_archive_max_processes;
设置归档进程数
alter system  set log_archive_max_processes=10;


设置归档目录地址(不设置的话,将会使用默认归档位置 show parameter db_recovery_file_dest),如果目录 archive 不存在,会找上一级目录 zws
alter system set log_archive_dest_1='location=D:\app\zws\archive mandatory';  -- mandatory 强制该目录下的归档日志写成功,否则对应的重做日志不能被重新使用
alter system set log_archive_dest_2='location=D:\app\zws\archive2 optional';  -- optional 不强制
alter system set log_archive_dest_3='location=D:\app\zws\archive3 optional';
alter system set log_archive_dest_4='location=D:\app\zws\archive4 optional';


取消已设置的归档目录地址
alter system set log_archive_dest_4='';


最少归档成功数
show parameter log_archive_min_succeed_dest;
修改最少归档成功数
alter system set log_archive_min_succeed_dest=3;  --此值不能大于归档目录数。


归档日志目录状态
show parameter log_archive_dest_state_4; --enable 有效的,defer 临时禁止,alternative 备用目录


备用目录使用方法


alter system set log_archive_dest_1='location=D:\app\zws\archive mandatory alternate=log_archive_dest_4'; 
alter system set log_archive_dest_state_4=alternate;




数据库文件逻辑结构
数据库--表空间--段--区--块。 (均为一对多的关系)
一个表空间可以对应一个或多个数据文件,一个数据文件只能对应一个表空间。
一个段只能属于一个表空间,但可以属于多个数据文件。
一个数据文件对应一个或多个区。一个区只能属于一个数据文件。


查看数据库表空间
select * from dba_tablespaces;
block_size 由初始化参数 bd_block_size 设置。
查看数据库物理文件所在位置
select * from dba_data_files
oracle数据库表空间分类:系统表空间和非系统表空间。--最好将系统表空间和非系统表空间分开放置。


创建表空间
create tablespace zws
datafile 'F:\app\tdn084\oradata\orcl\zws.dbf' size 100M
minimum extent 10M   --定义该表空间最小的区段的大小
logging|nologging   --是否记录重做日志
online|offline     --在线、离线
permanent|temporary    --永久存储、临时存储


查看表空间、表、索引等创建语句
SELECT DBMS_METADATA.GET_DDL('TABLESPACE','ZWS') FROM DUAL;  


表空间管理的两种方式:数据字典管理方式、本地表空间管理方式。数据字典管理方式会发生数据字典的争用,故现在默认采用本地表空间管理方式。


创建数据字典管理表空间    --建立字典管理表空间,要求SYSTEM表空间必须采用字典管理方式.因现在默认是本地表空间管理方式,下列语句会执行失败
create tablespace dictionary_zws
datafile 'F:\app\tdn084\oradata\orcl\dictionary_zws.dbf' size 100M
minimum extent 20k 
extent management dictionary
default storage(initial 100k next 20k maxextents 500 pctincrease 0);


创建本地管理表空间
create tablespace local_zws
datafile 'F:\app\tdn084\oradata\orcl\local01_zws.dbf' size 100M,
'F:\app\tdn084\oradata\orcl\local02_zws.dbf' size 100M
extent management local  --可以不写,默认为这种方式
uniform size 1M
autoextend on;  --自动扩展表空间


创建undo表空间
create undo tablespace undo_tablespace
datafile 'F:\app\tdn084\oradata\orcl\undo_tablespace.dbf'
size 100M
autoextend on;  --自动扩展表空间


创建临时表空间
create temporary tablespace temporary_tablespace
tempfile 'F:\app\tdn084\oradata\orcl\temporary_tablespace.dbf'
size 100M;


查看临时表空间数据文件信息
select * from v$tempfile;


告警日志位置
F:\app\tdn084\diag\rdbms\orcl\orcl\alert


查看默认临时表空间。--默认是system表空间
select * from database_properties where property_name like 'DEFAULT%'


设置默认临时表空间
alter database default temporary tablespace TEMPORARY_TABLESPACE;


不用的临时表空间可以删除
drop tablespace ZWS;  --删除表空间不会删除物理文件。
drop tablespace ZWS including contents; --删除表空间中的所有区段
drop tablespace ZWS including contents and datafiles;     --删除物理文件    


正在使用的临时表空间不能删除,临时表空间不能离线。


表空间离线|在线
alter tablespace ZWS offline|ONLINE;


表空间只读
alter tablespace ZWS read only;


表空间正常状态
alter tablespace ZWS read write;


修改表空间大小
1、创建表空间是加 autoextend on;
2、alter database datafile
'F:\app\tdn084\oradata\orcl\zws.dbf' autoextend on next 1M;
3、向表空间增加数据文件
alter tablespace ZWS
add datafile 'F:\app\tdn084\oradata\orcl\zws01.dbf' size 100M;
4、重新设置表空间大小
alter database datafile 'F:\app\tdn084\oradata\orcl\zws.dbf' resize 200M;


修改表空间存储参数
alter tablespace ZWS
minimum extent 2M 
default storage(initial 2M next 2M maxextents 500 pctincrease 0);




迁移数据文件


迁移系统表空间数据
步骤一:关闭数据库
步骤二:将要迁移的数据文件复制到新的目录下。
步骤三:打开数据库到mount状态,执行以下命令
alter database rename file '原文件目录位置' to '新文件目录位置';
步骤四:打开数据库。


迁移非系统表空间
步骤一:离线表空间 alter tablespace tablespace_name offline;
步骤二:将要迁移的数据文件复制到新的目录下。
步骤三:alter tablespace tablespace_name rename datafile '原文件目录位置' to '新文件目录位置';
步骤四:在线表空间 alter tablespace tablespace_name online;

你可能感兴趣的:(Oracle)