设为首页 收藏本站
查看: 875|回复: 0

[经验分享] 在使用ORACLE时常用到的命令和脚本

[复制链接]
YunVN网友  发表于 2016-8-13 06:17:31 |阅读模式
在使用ORACLE时常用到的命令和脚本

  
在使用ORACLE时常用到的命令和脚本,希望大家能用上  
一、数据字典
1、查数据块大小
select name,value fromv$parameter where name='db_block_size';
2、查数据文件的大小
select bytes/1024/1024 "sizeinMB" fromv$datafile where name='&actual_file_name';
3、如何查出前台正在发出的sql语句;先查出正在运行的前台程序的sid;然后根据上面得到的sid,可查出正在运行的前台程序发出的sql语句:
sql>select sid,serial#,username,program from v$session where status='ACTIVE';
sql>select user_name,sql_text fromv$open_cursor wheresid=xx;


二、逻辑备份
1、full方式下的完全导出(增量导出与积累只能在全数据库方式--FULL=Y下使用)
exp test/test file=c:/testcom.dmp full=Y inctype=complete log=c:/testcom.log
2、full方式下的增量导出
exp test/test file=c:/testinc.dmp full=Y inctype=incremental log=c:/testinc.log
3、full方式下的积累导出
exps mart/test file=c:/testcum.dmp full=Y inctype=cumulative log=c:/testcum.log
4、导出成三个文件,每个文件的大小设成1.5G
exp test/test file=c:/exp01.dmp,exp02.dmp,exp03.dmp filesize=1500M buffer=204800 owner=test grants=Y compress=Y

5、将三个DMP文件导入到LC用户下
imp lc/lc file=c:/exp01.dmp,exp02.dmp,exp03.dmp log=c:/implog.txt fromuser=test touser=lc
6、建立一个与现存数据库相同,但不包含数据的空库;对全库作Export或Import时,使用参数ROWS=Y
exp system/manager full=Y rows=N file=full.dmp
imp system/manager full=Y rows=N file=full.dmp
7、在oracle7和oracle8之间export/import数据;必须先在oracle8数据库上以internal或sys用户运行catexp7.sql
svrmgr>connect internal
svrmgr>@?/rdbms/admin/catexp7.sql

完全增量导入A
imp system/manager inctype=restore full=y file=A
累计增量导入E
imp system/manager inctype=restore full=y file=E
最近增量导入F
imp system/manager inctype=restore full=y file=F




  三、数据库管理
  1、为远程用户设置"internal"的口令;先在数据库端的init<sid>.ora文件中设置,并且为oracle owner设置环境变量
remote_login_passwordfile=exclusive
ORA_<SID>_PWFILE=orapw<sid>.pwd
然后以oracleowner运行以下命令
$cd $ORACLE_HOME/dbs
$orapwd file=orapw<sid>.pwd password=<passwd> entries=5
  2、设置redo log文件的大小。设置redo log文件的原则就是要保证30分钟之内进行logswitch.logswitch的信息被记录在alertSID.log中。
-------------------------------------------------------
Mon May 513:53:311997
Thread 1 advanced to log sequence 68
Current log#2seq#68mem#0:/u05/dbs/log2ween.dbf-------------------------------------------------------
  如果两次switch的时间是10分钟,你需要增加redolog文件到三倍的尺寸。
如果两次switch的时间是15分钟,你需要增加redolog文件到两倍的尺寸。
如果两次switch的时间超过30分钟,你不需要需要增加redolog文件的尺寸。
同时设置CHECK_POINT_INTERVAL大于redolog文件的大小。
  3、检查是否一个数据库用户被授予sysdba,sysoper的权限;注册到sys用户下,查询数据字典v$pwfile_users.
  4、移动数据文件的位置;
  1.正常关闭数据库;
  2.拷贝数据文件到新位置;
   $cp $ORACLE_HOME/dbs/dbsNEW.dbf/usr3/oracle/dbsNEW.dbf
  3.svrmgrl
   connect internal;
   startup mount;
   alter database rename file '<$ORACLE_HOME>/dbs/dbsNEW.dbf' to '/usr3/oracle/dbsNEW.dbf';
   alter database open.
4.修改数据文件物理大小
alter database datafile 'C:/ORACLE/ORADATA/testAA/UNDOTBS01.DBF' resize 150M;
  
5、移动LOG文件的位置;可以先添加新的LOG文件,再删除原来的LOG文件。
svrmgrl>connect internal;
alter database add logfile '<$ORACLE_HOME>/usr3/oracle/logNEW.dbf';
alter database drop logfile '<$ORACLE_HOME>/dbs/logNEW.dbf';
增加日志成员到日志组3:alter database add logfile member 'c:/oracle/oradata/test/redo03a.log' to group 3;
  
6、查看SGA区剩余可用内存;
SQL> col OBJECT_NAME format a20
SQL> col 自由空间百分比(%) format 90.99   --格式化,把小数点对齐为两位
  SQL> select name,
       sgasize/1024/1024        "Allocated(M)",
       bytes/1024            "自由空间(K)",
       round(bytes/sgasize*100, 2)   "自由空间百分比(%)"
  from (select sum(bytes) sgasize from sys.v_$sgastat) s, sys.v_$sgastat f
  wheref.name = 'free memory';
  以下为查看sys.v_$sgastat相关
  SQL> desc sys.v_$sgastat
SQL> select sum(bytes) sgasize from sys.v_$sgastat; --SGA区总和
SQL> select * from sys.v_$sgastat;
  7、如何查看什么时间有哪些数据库对象结构被修改过?说明:
SQL> col OBJECT_NAME format a20
SQL> SELECT OBJECT_NAME,                       --对象名
       OBJECT_TYPE,                        --对象类型
       TO_CHAR(CREATED, 'YYYY-Mon-DD HH24:MI') CREATE_TIME, --创建时间
        TO_CHAR(LAST_DDL_TIME, 'YYYY-Mon-DD HH24:MI') MOD_TIME,   --修改时间
        TIMESTAMP,                         --时间戳
        STATUS                           --状态
   FROM USER_OBJECTS
    WHEREto_char(LAST_DDL_TIME,'yyyymmdd')>'&日期变量';
  8、如何查看Oracle版本及安装了哪些选项?
A、查看数据库版本
SQL> select banner from sys.v_$version;
  B、查看安装了哪些选项
SQL> col PARAMETER format a60
SQL> col VALUE format a10
SQL> select * from sys.v_$option;
SQL> set head off feed off pages 0 serveroutput on
SQL> begin
2dbms_output.put_line('Port String: '||dbms_utility.port_string);
3end;
4/
Port String: IBMPC/WIN_NT-8.1.0
  9、如何查看数据文件是否自动扩展?
SQL> col FILE_NAME format a40
SQL> col TABLESPACE_NAME format a20
SQL> select file_id,file_name,tablespace_name,autoextensible from dba_data_files order by file_id;
说明:TEST表空间用以下语句创建的一个实验表空间,没有指定 AUTOEXTEND ON 参数,所以不是自动扩展。
SQL> create tablespace test datafile
2'd:/test.dbf' size 5M
3default storage (initial 1M next 1M pctincrease 0)
4/
  10、怎样识别IO竞争和负载平衡?
使用系统表:
v$datafile:存储数据库中数据文件的信息
v$filestat:存储系统中访问数据文件的统计信息
  SQL语句:
  col 文件名 format a35
select
df.name 文件名,
fs.phyrds 读次数,
fs.phywrts 写次数,
(fs.readtim/decode(fs.phyrds,0,-1,fs.phyrds)) 读时间,
(fs.writetim/decode(fs.phywrts,0,-1,fs.phywrts)) 写时间
from
v$datafile df,
v$filestat fs
where df.file#=fs.file#
order by df.name
/
其中:ORADB为数据库名,因为本例中数据库使默认安装,没有进行过优化、调整,
所以,一直在system表空间上做操作,导致system表空间所在的数据文件SYSTEM01.DBF被读写的次数最多,
这也说明了,尽量不要在system表空间做与系统无关的操作,应给各个用户建立单独的表空间。

11、如何查看数据库的字符集?
实现方法:
SQL> conn sys/change_on_install
SQL> desc props$
SQL> set arraysize 1
SQL> col value$ format a40 --格式化value$的输出为40个字符宽
SQL> select name,value$ from props$ where name='NLS_CHARACTERSET';
SQL> conn system/manager
SQL> select * from nls_database_parameters;
SQL> select * from V$NLS_PARAMETERS;
SQL> select * from nls_database_parameters;
SQL> select * from V$NLS_PARAMETERS;
  12、查看数据库中所有数据文件与表空间的名称与文件名称及物理位置
select t.name Tablespace,f.name Datafile from v$tablespace t,v$datafile f where t.ts# = f.ts# order by t.name;
  13、查看控制文件信息:
先用alter database backup controlfile to trace;
这样就会产生文本文件,用UE来打开产生的这个trace就可看了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-256866-1-1.html 上篇帖子: 在Oracle中进行大小写不敏感的查询 下篇帖子: Oracle hcheck脚本检查 数据字典一致性 说明
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表