Oracle sql语句使用
ORACLE数据库实践文档
1.登录sql编辑器
1 | sqlplus / as sysdba(一般使用) |
2.查询当前实例
1 | select name from v$database; |
3.切换实例
1 | export ORACLE_SID=ILSDB |
4.查询所有表空间
1 | select t1.name,t2.name from v$tablespace t1,v$datafile t2 where t1.ts# = t2.ts#;(带路径) |
5.查询某个用户的表空间
1 | select default_tablespace from dba_users where username='CFS'; |
6.查询数据泵位置
1 | SELECT * FROM dba_directories;(DATA_PUMP_DIR后面的路径为数据泵路径) |
创建表空间(DBRP2_DATA_SPACE:表空间名,’/oradata/ILSRULEDB/DBRP2_DATA_SPACE.dbf’:表空间文件路径,)
1 | create tablespace DBRP2_DATA_SPACE logging datafile '/oradata/ILSRULEDB/DBRP2_DATA_SPACE.dbf' size 1024m autoextend on next 1024m maxsize 20480m; |
导出数据库(cfs:用户名,oracle:用户密码,ILSDB:实例,cfs_HGCEJG.dmp:导出文件名称)
1 | expdp cfs/oracle@ILSDB directory=DATA_PUMP_DIR dumpfile=cfs_HGCEJG.dmp |
导入数据库cfs:用户名,oracle:用户密码,ILSDB:实例,cfs_APP_NEW.dmp:导出文件名称,a:原用户名,b:现在用户名,c和e:原表空间,d和f:现表空间名,TABLE_EXISTS_ACTION=REPLACE:数据可以重复执行)
1 | impdp cfs/oracle@ILSDB directory=DATA_PUMP_DIR dumpfile=cfs_APP_NEW.dmp remap_schema=a:b remap_tablespace=c:d,e:f TABLE_EXISTS_ACTION=REPLACE |
银行生产用户权限(connect,unlimited tablespace,role_app_priv)导致导入导出语句:schemas为用户名称
1 | impdp credit/oracle directory=TMDUMP dumpfile=credit-20200529-%U.dmp table_exists_action=replace remap_tablespace=TBS_CREDIT:TBS_CREDIT remap_schema=credit:credit; |
导完之后,用sqlplus / as sysdba登录,执行exec DBMS_STATS.GATHER_SCHEMA_STATS(OWNNAME=>’CREDIT’,degree=>8);
1 | --导出:expdp \" / as sysdba \" directory=DATA_PUMP_DIR dumpfile=cfs_uat.dmp schemas=cfs logfile=fs_uat.log |
oracle数据库停止服务/启动服务命令
1 | su - oracle |
查询数据库编码集
1 | select * from nls_database_parameters; |
26.查询锁表
1 | select object_name,machine,s.sid,s.serial# from gv$locked_object l,dba_objects o,gv$session s where l.object_id = o.object_id and l.session_id = s.sid ; |
查询用户被锁ORA-28000问题解决
1 | --查询用户状态 |
解决用户密码过期ORA-28001;oracle用户密码180会过期
1 | --查看用户的profile,一般为default |
数据库3种闪回机制这里只提供(表的闪回)
1 | --给表闪回的权限 |
如何查看系统被锁的事物时间
1 | select * from v$locked_object ; |
如何在Oracle服务器上通过SQLPLUS查看本机IP地址
1 | select sys_context('userenv','ip_address') from dual |
如何将表移动表空间(待验证)
1 | ALTER TABLE TABLE_NAME MOVE TABLESPACE_NAME |
如何将索引移动表空间(待验证)
1 | ALTER INDEX INDEX_NAME REBUILD TABLESPACE TABLESPACE_NAME |
修改用户密码
1 | alter user crmpRm identified by crmpRm; |
查询这张表或SQL语句被哪台机器(人)操作过
1 | select * from v$sqlarea a where upper(a.SQL_TEXT) like '%BUSINESS_APLLY%'; |
41.改变服务器编码
1 | shutdown immediate; |
42.查看执行中和执行过的sql
(1)查询Oracle正在执行的sql语句及执行该语句的用户
1 | SELECT b.sid oracleID, |
(2)其它正在执行的sql语句代码
1 | select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT |
(此方法好处可以查看某一时间段执行过的sql,并且 SQL_FULLTEXT 包含了完整的 sql 语句)
(3)其他
1 | select OSUSER,PROGRAM,USERNAME,SCHEMANAME,B.Cpu_Time,STATUS,B.SQL_TEXT |