zoukankan      html  css  js  c++  java
  • ORACLE备份、恢复、常用查询

    --第一,启动服务,(如果数据库处于启动状态,那么略过这一步) 打开命令行执行以下语句 
    net start OracleServiceORCL 
    net start  OracleOraDb10g_home2TNSListener 
    net start OracleOraDb10g_home2iSQL*Plus 
    --以上方式是在windows服务中启动服务,当windows服务不能启动数据库实例的时候,应用以下的语句   
    set oracle_sid=orcl 
    oradim -startup -sid orcl 
    sqlplus internal/oracle   startup  
      
    --第二清理以前还原过的痕迹,如果我们在数据库曾经还原过,我们先来清理一下,痕迹, 
    --删除用户 
    drop user xxxx cascade;      
    --删除表空间 
    drop tablespace xxxx;     
    --删除数据库文件     
    e:xxxxxx.dbf 
     
    --第三,接下来,准备工作做好后,我们就可以开始还原了 
    --创建用户 
    create user yhhg identified by yhhg default tablespace EAS_D_YHHG temporary tablespace EAS_T_YHHG;   
    --给予用户权限 
    grant connect,resource,dba to yhhg; 
    --创建表空间,并指定文件名,和大小 
    create tablespace EAS_D_YHHG datafile 'E:oracle11goradataeasdbEAS_D_YHHG.dbf' size 15000m REUSE autoextend on next 500M ;
    create temporary tablespace EAS_T_YHHG tempfile 'E:oracle11goradataEAS_T_YHHG.dbf' size 1000m autoextend on next 200m maxsize 2000m extent management local;
    --开始导入(完全导入),file:dmp文件所在的位置, ignore:因为有的表已经存在,对该表就不进行导入。 
    --在后面加上 ignore=y 。指定log文件 log=e:log.txt 
    imp user/pass@orcl full=y file=e:xxx.dmp ignore=y log=e:log.txt 
    --当我们不需要完整的还原数据库的时候,我们可以单独地还原某个特定的表 
    imp user/pass@datbase file=e:xxx.dmp ignore=y log=e:log.txt tables=(xxxx) 
    imp user/pass@database file=e:xxx.dmp ignore=y log=e:log2.txt tables=(xxxx)  
    
    
    --oracle常用的操作命令 
    --查看实例名
    select name from v$database
    select instance_name from v$instance
    --查看表空间的属性 
    select tablespace_name,extent_management,allocation_type from dba_tablespaces 
    --查找一个表的列,及这一列的列名,数据类型 
    select TABLE_NAME,COLUMN_NAME,DATA_TYPE   from user_tab_columns where TABLE_NAME='xxxx' 
    --查找表空间中的用户表 
    select * from all_tables where owner='xxx' order by table_name desc 
    --在指定用户下,的表的数量 
    select count(*) from user_tab_columns    
    --查看数据库中的表名,表列,所有列 
    select TABLE_NAME,COLUMN_NAME,DATA_TYPE   from user_tab_columns order by table_name desc  
    --查看用户ZBFC的所有的表名及表存放的表空间 
    select table_name,tablespace_name from all_tables where owner='xxxx' order by table_name desc 
    --生成删除表的文本 
    select 'Drop   table '||table_name||';' from all_tables where owner="ZBFC"; 
    --删除表级联删除 
    drop table table_name [cascade constraints];
    --查找表中的列 
    select TABLE_NAME,COLUMN_NAME,DATA_TYPE   from user_tab_columns where column_name like '%'||'地'||'%' order by table_name desc  
    --查看数据库的临时空间 
    select tablespace_name,EXTENT_SIZE,current_users,total_extents,used_extents,MAX_SIZE,free_extents from v$sort_segment; 
    --查看用户的连接状况
    select username,sid,serial# from v$session
    --搜出该用户的session的SID,SERIAL码,然后kill掉
    select sid,serial# from v$session where username='user_name';
    alter system kill session 'sid,serial';
    --oracle 查看所有用户及密码
    select * from dba_users;
    --Oracle密码过期
    --查看用户的proifle是哪个,一般是default
    SELECT username,PROFILE FROM dba_users;
    --查看指定概要文件(如default)的密码有效期设置
    SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';'
    --将密码有效期由默认的180天修改成“无限制”
    ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
    --oracle修改用户密码方法
    --set oracle_sid=数据库名称,输入sqlplus“/ as sysdba”进入oracle后台管理界面
    --在oracle后台管理界面输入语句查找system用户的密码。
    --具体命令为输入:
    Select  username,password from dba_users where username=‘SYSTEM’
    
    --数据导出:
    --1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中
    exp system/manager@TEST file=d:daochu.dmp full=y
    --2 将数据库中system用户与sys用户的表导出
    exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
    --3 将数据库中的表inner_notify、notify_staff_relat导出
    exp aichannel/aichannel@TESTDB2 file= d:data
    ewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
    --4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
    exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'";
    --上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩,也可以在上面命令后面 加上 compress=y 来实现。
    
    --数据的导入
    --1 将D:daochu.dmp 中的数据导入 TEST数据库中。
    imp system/manager@TEST file=d:daochu.dmp
    imp aichannel/aichannel@HUST full=y file=file= d:data
    ewsmgnt.dmp ignore=y
    --上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入,在后面加上 ignore=y 就可以了。
    --2 将d:daochu.dmp中的表table1 导入
    imp system/manager@TEST file=d:daochu.dmp tables=(table1)
    --基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。注意:
    --操作者要有足够的权限,权限不够它会提示。
    --数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。

  • 相关阅读:
    四则运算 2
    《你的灯亮着吗》读后感 (前两篇)
    四则运算设计思路
    读书目标
    课堂总结
    人月神话感想
    软件工程概论11
    软件工程概论10
    bnu——GCD SUM (莫比乌斯反演)
    POJ1108_Split Windows 解题报告
  • 原文地址:https://www.cnblogs.com/fyq891014/p/5057954.html
Copyright © 2011-2022 走看看