Oracle studay info
先查询空闲空间
select tablespace_name,file_id,block_id,bytes,blocks from dba_free_space;
增加Oracle表空间
询数据文件名称、大小和路径的信息
select tablespace_name,file_id,bytes,file_name from dba_data_files;
修改文件大小语句如下
alter database datafile
'需要增加的数据文件路径,即上面查询出来的路径
'resize 800M;
创建Oracle表空间
create tablespace test
datafile '/home/app/oracle/oradata/oracle8i/test01.dbf' size 8M
autoextend on
next 5M
maxsize 10M;
create tablespace sales
datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
autoextend on
next 50M
maxsize unlimited
maxsize unlimited 是大小不受限制
create tablespace sales
datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
autoextend on
next 50M
maxsize 1000M
extent management local uniform;
unform 表示区的大小相同,默认为1M
create tablespace sales
datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
autoextend on
next 50M
maxsize 1000M
extent management local uniform size 500K;
unform size 500K 表示区的大小相同,为500K
create tablespace sales
datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
autoextend on
next 50M
maxsize 1000M
extent management local autoallocate;
autoallocate 表示区的大小由随表的大小自动动态改变,大表使用大区小表使用小区
create tablespace sales
datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
autoextend on
next 50M
maxsize 1000M
temporary;
temporary 创建字典管理临时表空间
create temporary tablespace sales
tempfile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
autoextend on
next 50M
maxsize 1000M
为表空间增加数据文件:
alter tablespace sales add
datafile '/home/app/oracle/oradata/oracle8i/sales02.dbf' size 800M
autoextend on next 50M
maxsize 1000M;
更改自动扩展属性:
alter database datafile
'/home/app/oracle/oradata/oracle8i/sales01.dbf',
'/home/app/oracle/oradata/oracle8i/sales02.dbf'
'/home/app/oracle/oradata/oracle8i/sales01.dbf
autoextend off;
3种标准角色
CONNECT Role(连接角色)
临时用户,特别是那些不需要建表的用户,通常只赋予他们CONNECTrole。CONNECT是使用Oracle的简单权限,
这种权限只有在对其他用户的表有访问权时,包括select、insert、update和delete等,才会变得有意义。
拥有 CONNECT role的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym )、
会话(session)和与其他数据库的链(link)
RESOURCE Role(资源角色)
更可靠和正式的数据库用户可以授予RESOURCE role。
RESOURCE提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster).
DBA Role(数据库管理员角色)
DBA role拥有所有的系统权限
包括无限制的空间限额和给其他用户授予各种权限的能力。
SYSTEM由DBA用户拥有。下面介绍一些DBA经常使用的典型权限。
(1)grant(授权)命令
grant connect, resource to user_name;
(2)revoke(撤消)权限
revoke connect, resource from user_name;
创建角色
除了前面讲到的三种系统角色----CONNECT、RESOURCE和DBA,用户还可以在Oracle创建自己的role。
用户创建的role可以由表或系统权限或两者的组合构成。为了创建role,
用户必须具有CREATE ROLE系统权限。
create role role_name;
grant select on object_name to role_name;
删除角色
drop role role_name;
一个具有DBA角色的用户可以撤消任何别的用户甚至别的DBA的CONNECT、RESOURCE 和DBA的其他权限。
当然,这样是很危险的,因此,除非真正需要,DBA权限不应随便授予那些不是很重要的一般用户。
撤消一个用户的所有权限,并不意味着从Oracle中删除了这个用户,
也不会破坏用户创建的任何表;只是简单禁止其对这些表的访问。
其他要访问这些表的用户可以象以前那样地访问这些表。
创建用户
create user user_name identified by user_password;
create user tickets identified by "123456"
default tablespace tablespace_name
temporary tablespace temp_tablespace_name;
修改用户
alter user user_name identified by user_new_password;
删除用户
drop user user_name;
如果用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户
drop user user_name cascade;
Oracle用户解锁
alter user scott account unlock;
解锁之后可能会要求你该密码:
alter user scott identified by tiger;
锁定用户的方法:
alter user test account lock;
sqlplus>host command
强制写入数据文件
alter system checkpoint;
清楚缓存数据字典信息
alter system flush shared_pool;
Oracle查询用户表空间
select * from user_all_tables
Oracle查询所有函数和储存过程
select * from user_source
Oracle查询所有用户
select * from all_users.select * from dba_users
Oracle查看当前用户连接
select * from v$Session
Oracle查看当前用户权限
select * from session_privs
查询更改Oracle用户名
select user#,name,password from user$ where name ='user_name';
select a.file_id "FileNo",a.tablespace_name
"Tablespace_name",
a.bytes "Bytes",a.bytes-sum(nvl(b.bytes,0)) "Used",
sum(nvl(b.bytes,0)) "Free",
sum(nvl(b.bytes,0))/a.bytes*100 "%free"
from dba_data_files a, dba_free_space b
where a.file_id=b.file_id(+)
group by a.tablespace_name ,
a.file_id,a.bytes order by a.tablespace_name;
列出实例中所有控制文件的名字及状态信息
V$CONTROLFILE
列出所有参数的位置及状态信息
V$PARAMETER
列出控制文件中记录的部分信息
V$CONTROLFILE_RECORD_SECTION
列出控制文件的名字、状态、位置
SHOW PARAMETER CONTROL_FILES
备份控制文件到平面文件
alter database backup controlfile to trace as '/u01/app/oracle/ctl.txt';
将控制文件减少到一个
alter system set control_files = '/u01/app/oracle/oradata/orcl/control01.ctl' scope =spfile;
增加控制文件(在nomount状态下即可修改)
alter system set control_files = '/u01/app/oracle/oradata/orcl/control01.ctl',
'/u01/app/oracle/oradata/orcl/control02.ctl',
'/u01/app/oracle/oradata/orcl/control03.ctl'
scope = spfile;
热备份控制文件
alter database backup controlfile to '<dir>'
得到建立控制文件的脚本
alter database backup controlfile to trace as '<dir>'
用于归档模式下的恢复,直接覆盖到控制文件
alter database backup controlfile to '/u01/app/oracle/control.bak';
用于重建控制文件
alter database backup controlfile to trace as'/u01/app/oracle/recreate_controlfile.txt';
查看归档的状态
archive log list;
startup mount;
alter database archivelog;
alter database open;
切换日志
alter system switch logfile;
查看实例和数据库的相关信息
select instance_name,version,status,archiver,database_status from v$instance;
select dbid,name,log_mode from v$database;
查看数据文件及状态信息
select file_name,tablespace_name,status,online_status from dba_data_files;
查看数据文件
select name from v$datafile;
查看临时文件
select name from v$tempfile;
查看日志文件
select member from v$logfile;
查看控制文件
select name from v$controlfile;
查看oracle字符集合参数
select * from v$nls_parameters;
修改oracle10g字符集合
SQL>shutdown immediate
SQL>STARTUP MOUNT
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL>ALTER DATABASE OPEN;
SQL>ALTER DATABASE CHARACTER SET ZHS16GBK
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP
Oracle studay info
先查询空闲空间
select tablespace_name,file_id,block_id,bytes,blocks from dba_free_space;
增加Oracle表空间
询数据文件名称、大小和路径的信息
select tablespace_name,file_id,bytes,file_name from dba_data_files;
修改文件大小语句如下
alter database datafile
'需要增加的数据文件路径,即上面查询出来的路径
'resize 800M;
创建Oracle表空间
create tablespace test
datafile '/home/app/oracle/oradata/oracle8i/test01.dbf' size 8M
autoextend on
next 5M
maxsize 10M;
create tablespace sales
datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
autoextend on
next 50M
maxsize unlimited
maxsize unlimited 是大小不受限制
create tablespace sales
datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
autoextend on
next 50M
maxsize 1000M
extent management local uniform;
unform 表示区的大小相同,默认为1M
create tablespace sales
datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
autoextend on
next 50M
maxsize 1000M
extent management local uniform size 500K;
unform size 500K 表示区的大小相同,为500K
create tablespace sales
datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
autoextend on
next 50M
maxsize 1000M
extent management local autoallocate;
autoallocate 表示区的大小由随表的大小自动动态改变,大表使用大区小表使用小区
create tablespace sales
datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
autoextend on
next 50M
maxsize 1000M
temporary;
temporary 创建字典管理临时表空间
create temporary tablespace sales
tempfile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M
autoextend on
next 50M
maxsize 1000M
为表空间增加数据文件:
alter tablespace sales add
datafile '/home/app/oracle/oradata/oracle8i/sales02.dbf' size 800M
autoextend on next 50M
maxsize 1000M;
更改自动扩展属性:
alter database datafile
'/home/app/oracle/oradata/oracle8i/sales01.dbf',
'/home/app/oracle/oradata/oracle8i/sales02.dbf'
'/home/app/oracle/oradata/oracle8i/sales01.dbf
autoextend off;
3种标准角色
CONNECT Role(连接角色)
临时用户,特别是那些不需要建表的用户,通常只赋予他们CONNECTrole。CONNECT是使用Oracle的简单权限,
这种权限只有在对其他用户的表有访问权时,包括select、insert、update和delete等,才会变得有意义。
拥有 CONNECT role的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym )、
会话(session)和与其他数据库的链(link)
RESOURCE Role(资源角色)
更可靠和正式的数据库用户可以授予RESOURCE role。
RESOURCE提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster).
DBA Role(数据库管理员角色)
DBA role拥有所有的系统权限
包括无限制的空间限额和给其他用户授予各种权限的能力。
SYSTEM由DBA用户拥有。下面介绍一些DBA经常使用的典型权限。
(1)grant(授权)命令
grant connect, resource to user_name;
(2)revoke(撤消)权限
revoke connect, resource from user_name;
创建角色
除了前面讲到的三种系统角色----CONNECT、RESOURCE和DBA,用户还可以在Oracle创建自己的role。
用户创建的role可以由表或系统权限或两者的组合构成。为了创建role,
用户必须具有CREATE ROLE系统权限。
create role role_name;
grant select on object_name to role_name;
删除角色
drop role role_name;
一个具有DBA角色的用户可以撤消任何别的用户甚至别的DBA的CONNECT、RESOURCE 和DBA的其他权限。
当然,这样是很危险的,因此,除非真正需要,DBA权限不应随便授予那些不是很重要的一般用户。
撤消一个用户的所有权限,并不意味着从Oracle中删除了这个用户,
也不会破坏用户创建的任何表;只是简单禁止其对这些表的访问。
其他要访问这些表的用户可以象以前那样地访问这些表。
创建用户
create user user_name identified by user_password;
create user tickets identified by "123456"
default tablespace tablespace_name
temporary tablespace temp_tablespace_name;
修改用户
alter user user_name identified by user_new_password;
删除用户
drop user user_name;
如果用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户
drop user user_name cascade;
Oracle用户解锁
alter user scott account unlock;
解锁之后可能会要求你该密码:
alter user scott identified by tiger;
锁定用户的方法:
alter user test account lock;
sqlplus>host command
强制写入数据文件
alter system checkpoint;
清楚缓存数据字典信息
alter system flush shared_pool;
Oracle查询用户表空间
select * from user_all_tables
Oracle查询所有函数和储存过程
select * from user_source
Oracle查询所有用户
select * from all_users.select * from dba_users
Oracle查看当前用户连接
select * from v$Session
Oracle查看当前用户权限
select * from session_privs
查询更改Oracle用户名
select user#,name,password from user$ where name ='user_name';
select a.file_id "FileNo",a.tablespace_name
"Tablespace_name",
a.bytes "Bytes",a.bytes-sum(nvl(b.bytes,0)) "Used",
sum(nvl(b.bytes,0)) "Free",
sum(nvl(b.bytes,0))/a.bytes*100 "%free"
from dba_data_files a, dba_free_space b
where a.file_id=b.file_id(+)
group by a.tablespace_name ,
a.file_id,a.bytes order by a.tablespace_name;
列出实例中所有控制文件的名字及状态信息
V$CONTROLFILE
列出所有参数的位置及状态信息
V$PARAMETER
列出控制文件中记录的部分信息
V$CONTROLFILE_RECORD_SECTION
列出控制文件的名字、状态、位置
SHOW PARAMETER CONTROL_FILES
备份控制文件到平面文件
alter database backup controlfile to trace as '/u01/app/oracle/ctl.txt';
将控制文件减少到一个
alter system set control_files = '/u01/app/oracle/oradata/orcl/control01.ctl' scope =spfile;
增加控制文件(在nomount状态下即可修改)
alter system set control_files = '/u01/app/oracle/oradata/orcl/control01.ctl',
'/u01/app/oracle/oradata/orcl/control02.ctl',
'/u01/app/oracle/oradata/orcl/control03.ctl'
scope = spfile;
热备份控制文件
alter database backup controlfile to '<dir>'
得到建立控制文件的脚本
alter database backup controlfile to trace as '<dir>'
用于归档模式下的恢复,直接覆盖到控制文件
alter database backup controlfile to '/u01/app/oracle/control.bak';
用于重建控制文件
alter database backup controlfile to trace as'/u01/app/oracle/recreate_controlfile.txt';
查看归档的状态
archive log list;
startup mount;
alter database archivelog;
alter database open;
切换日志
alter system switch logfile;
查看实例和数据库的相关信息
select instance_name,version,status,archiver,database_status from v$instance;
select dbid,name,log_mode from v$database;
查看数据文件及状态信息
select file_name,tablespace_name,status,online_status from dba_data_files;
查看数据文件
select name from v$datafile;
查看临时文件
select name from v$tempfile;
查看日志文件
select member from v$logfile;
查看控制文件
select name from v$controlfile;
set linesize 132
column name format a30
column value format a25
select
x.ksppinm name,
y.ksppstvl value,
y.ksppstdf isdefault,
decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE') ismod,
decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE') isadj
from
sys.x$ksppi x,
sys.x$ksppcv y
where
x.inst_id = userenv('Instance') and
y.inst_id = userenv('Instance') and
x.indx = y.indx and
x.ksppinm like '%_&par%'
order by translate(x.ksppinm,'_','');
create spfile from pfile
create pfile from spfile
alter system set parameter=value scope=[spfile,memory,booth]
spfile 搜索顺序
unix $oracle_home/dbs
nt:%oracle_home%\database
spfile<oracle_sid>.ora
unix $oracle_home/dbs
nt:%oracle_home%\database
spfile.ora
unix $oracle_home/dbs
nt:%oracle_home%\database
init<oracle_sie>ora
使用pfile 启动数据库
sql>startup pfile='pfilepath'
rac 环境下
alter system set <parameter_name>=<value> scope=memory|spfile|both [sid=<sid_name>]
修改静态参数只能指定 scope=spfile
desc v$spparameter
shutdown immediate
create pfile from spfile
create spfile from pfile
回复参数默认值
alter system reset aramter <scope=memory|spfile|both> sid=sid|*
select name,vale from v$parameter where name='spfile';
show prarmeter spfile;
oracle 控制文件自动备份
rman target /
configure controlfile autobackup on;
exit
察看回复管理
sql>select * from v$rman_configuration;
执行回复任务
RMAN>run
自动备份回复spfile
rman target/
restore spfile to '/tmp/spfileeeygle.ora' from autobackup
回复控制文件
restore controlfile to '/tmp/cnrol01.ctl' from autobackup;
如果数据库无法mount就不能用上述的方法回复控制文件和spfile
制定DBID回复相关的文件
或者用如下方法
RMAN>resote controlfile to '/tmp/control01.ctl' from c-4341434421-23243-00';
如果数据库无法mount
可以临时编辑一个pfile 来启动数据库实例然后进行恢复
通过RMAN启动ORACLE默认的数据库实例
rman target /
startup nomount;
恢复spfile
rman target /
restore spfile to '/tmp/spfile.ora' from c-4343444234=34242-00';
导出spfile
create pfile='uri' from spfile;
sql>archive log list
sql>show parameter log_archive_start;
sql>startup mount;
sql>alter database archivelog;
sql>alter database open;
sql>archive log list;
警报文件日志位置参数
sql>show parameter background_dump_dest
察看undo空间
sql>show parameter undo
察看spfile
sql>show parameter spfile;
sql>alter system set undo_tablespace='undotbs2' scope=memory;
oracle 数据字典有4部分组成
内部RDBMS(X$)
数据字典表
动态性能(V$)视图
数据字典视图
USER_类视图:包含了用户所拥有的相关对象信息
ALL_类视图:包含了用户有权限访问的所有对象信息
DBA_类视图:包含了数据库所有的相关对象信息
察看缓冲池
select id,name,block_size,current_size,target_size from v$buffer_pool;
察看SGA信息
select * from v$sgastat;
select * from v$sgainfo;
oracle 动态SGA视图
select tname from tab where tname like '%ADVICE%';
察看oracle内部进程
select pid,spid,program from v$process;
stty -a
stty erase ^h
yum install readline-devel
wget http://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.37.tar.gz
select UPPER(user) || '@' ||
UPPER(substr(global_name,
1,
decode(dot, 0, length(global_name), dot - 1))) global_name
from (select global_name, instr(global_name, '.') dot from global_name)
ALTER DATABASE
ADD LOGFILE GROUP 4
('D:\oracle\product\10.2.0\oradata\oradb\redo04.log') SIZE
1024K
configure controlfile autobackup on
select * from v$rman_configuration
create tablespace eygle datafile 'data/oracle/oradata/eygle01.dbf';
rman target/
restore spfile to '/tmp/spfileeygle.ora' from autobackup;
restore controlfile to '/tmp/spfileeygle' from autobackup;
restore controlfile to '/tmp/spfileeygle' from 'c-43434434-00';
alter system set event='10841 trace name context forever' scope=sffile;
sql>startup force
sql>show parameter event
sql>alter system reset event scope=spfile sid='*'
sql>create pfile='' from spfile
*.log_archive_start=true
sql>startup pfile='';
sql>show parameter log_archive_start
sql>create spfile from pfile='';
sql>archive log list
sql>show prarmeter log_archive_start
sql>shutdown immediate
sql>start mount;
sql>alter database archivelog;
sql>alter database open;
sql>archive log list;
sql>show parameter backgroud_dump_dest;
sql>select name from v$datafile;
sql>show parameter undo;
sql>alter system set undo_tablespace='table_space_name' scope=MEMORY;
sql>set autotrace trace explain