oracle db studay

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


 

猜你喜欢

转载自xiaolaogong.iteye.com/blog/1814666