首页 > 代码库 > 【ORACLE 10】表空间,用户 ,还原库,IMP,EXP,解锁

【ORACLE 10】表空间,用户 ,还原库,IMP,EXP,解锁

1登录: 
--运行->sqlplus-> js45st/password@jsmam
2表空间:
--创建表空间,指定数据文件(建议放在ORACLE目录下面),初始化100M 自增加50M
sql> create tablespace TBS_JSNET datafile ‘d:\oracledb\JetsenNet6\TBS_JSNET.dbf‘ size 200m      reuse AUTOEXTEND ON NEXT  10M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL
    SEGMENT SPACE MANAGEMENT AUTO;
--删除表空间
sql> drop tablespace TBS_JSNET including contents and datafiles;
Syntax语法: DROP TABLESPACE tablespace_name [INCLUDING CONTENTS [AND DATAFILES][CASCADE     CONSTRAINTS]];
--修改表空间
Alter Tablespace TBS_JSNET ADD DATAFILE ‘T:\oradata\live\Temp02.DBF‘ SIZE 800M;
alter tablespace tbs_jsnet rename datafile ‘filename‘ to ‘filename‘
参考:http://ss64.com/ora/tablespace_a.html
     http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7003.htm
3用户: 
--创建用户
create user mam42 identified by password default tablespace TBS_JSNET; --指定密码和默认表 空间
--授权用户
grant all privilege to mam42;
grant dba,connect to mam42;
revoke create table from user1;
gant select on table1 to user1;-指定表 
grant all on space1.table1 to user1;--另外表空间的表 all(select ,update,delete..)
    GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW , DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE,CREATE SESSION  TO 用户名字
--删除用户
drop user mam42 cascade;
--修改用户
ALTER USER mam42  DEFAULT ROLE  ALL;--赋予所有角色
alter user mam42 identified by password1; --修改密码
alter user mam42 account lock;
alter user mam42 account unlock;--解决表锁住和用户锁住解决方法
参考 :http://ss64.com/ora/user_c.html
4角色
        --创建角色
create role role1;
--授权
grant insert on TBS_JSNET.TABLE2 to role1; 将插入表的信息
grant role1 to user1; 给某用户角色
alter user user1 default role1,role2; 修改用户默认角色
--删除角色
drop role role1;

5数据导入导出:
将一个数据库的某用户的所有表导到另外数据库的一个用户下面的例子
1. exp  system/managerr@servicename owner=username1 file=expfile.dmp  
2. imp  ystem/manager@servicename fromuser=username1 touser=username2 ignore=y file=expfile.dmp 
数据导出:
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:\datanewsmgnt.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@TEST  full=y  file=d:\datanewsmgnt.dmp ignore=y
   上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
   在后面加上 ignore=y 就可以了。
2 将d:daochu.dmp中的表table1 导入
imp system/manager@TEST  file=d:\daochu.dmp  tables=(table1)


---------------------------------------
其他:
--查询一个用户拥有的对象权限
select table_name,privilege from dba_tab_privs where grantee=‘xujin‘;
--查询一个用户拥有的系统权限
select * from dba_sys_privs where grantee=‘xujin‘ 
--------
查看表是否被锁 
SELECT
a.sid, b.owner, object_name, object_type 
FROM v$lock a, all_objects b 
WHERE TYPE = ‘TM‘ 
and a.id1 = b.object_id; 
这样可把它杀掉 
SELECT sid,serial# FROM v$session WHERE sid = &sid; 
alter system kill session ‘sid,serial#’;
-----------------------------------------------------
   首先查看了一下ORACLE的主要内存参数:
SELECT "NUM","NAME","TYPE","VALUE"/1024 AS "KB",
"ISDEFAULT","ISSES_MODIFIABLE","ISSYS_MODIFIABLE",
"ISMODIFIED","ISADJUSTED","DESCRIPTION","UPDATE_COMMENT"
FROM v$parameter
WHERE NAME IN (‘db_block_size‘, ‘db_cache_size‘,
    ‘java_pool_size‘, ‘large_pool_size‘, ‘pga_aggregate_target‘,
    ‘shared_pool_size‘, ‘sort_area_size‘)
------------------------------------
-----设置系统的默认登录次数,用于输入错误密码多次而锁用户的解决方法
alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS 10;
alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS UNLIMITED;

【ORACLE 10】表空间,用户 ,还原库,IMP,EXP,解锁