1、以操作系统权限认证的oracle sys管理员登陆
sqlplus "/as sysdba"
2、创建表空间
create tablespace tablespacename datafile 'F:\app\Administrator\oradata\filename.dbf' size 200m autoextend on next 20m;
create temporary tablespace tablespacename_temp tempfile 'F:\app\Administrator\oradata\tempfilename.dbf' size 200m autoextend on next 20m;
create user username identified by password default tablespace tablespacename temporary tablespace tablespacename_temp ;
5、用户授权
grant dba to username;
6、数据库备份导出
expdp username/password@orcl dumpfile=filename.dmp schemas=username
文件目录在:D:\app\Administrator\admin\fjkz\dpdump
7、数据库备份导入:
将dmp文件复制到数据库dbdump的目录,如:D:\app\Administrator\admin\username\dpdump;
impdp username/password@orcl dumpfile=filename.dmp schemas=username
8、删除用户及用户下面的数据
drop user username cascade;
9、删除表空间
DROP TABLESPACE spacename INCLUDING CONTENTS AND DATAFILES;
10、非默认表空间配额
alter user username
quota 100m on tsname;
11、指定数据库实例登录
username/password@orcl as sysdba
12、数据备份还原文件
http://wenku.baidu.com/view/5d7728c69ec3d5bbfd0a7476.html
13、全部导出(过时的方式)
13.1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
13.2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
13.3 将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)
13.4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
14、数据的导入
14.1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
imp fjkz_dj_zs/fjkz_dj_zs@orcl file=d:\daochu.dmp
imp aichannel/aichannel@HUST full=y file=file= d:\data\newsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
14.2 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
15、用户解锁:
alter user username account unlock; -- 先去锁
alter user username identified by fjkz_dj; -- 然后重置密码
16、给用户创建dblink权限:
grant create public database link to username;
17、database link 数据库连接
-- Drop existing database link
drop database link linkname;
-- Create database link
create database link linkname
connect to orcl
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';
18、解决dababase lob类型数据链接问题,通过将数据存入临时表处理数据相关问题;
Create global temporary table temp on commit preserve rows as select * from tablename@linkname;
Insert into test select * from temp;
19、将一个用户的数据库表复制到另外一张表
exp user/password file=d:\temp.dmp owner=user consistent=y direct=y;
imp newuser/password file=temp.dmp ignore=y fromuser=olduser touser=newuser;
20、指定数据库实例
set oracle_sid=orcl
21、删除当前登录的用户
a、查出当前登录用户的session
select username, sid, serial# from v$session
b、清理session
alter system kill session '4,13'
22、将数据库导入到另外一个用户下面:
impdp user/user@orcl dumpfile=filename.dmp full=y table_exists_action=replace
remap_tablespace=user1:user remap_schema=user1:user
23、跨服务器数据导出
expdp username/password@orcl dumpfile=filename.dmp network_link=linkname
24、统计表空间使用情况:
SELECT A.TABLESPACE_NAME,
FILENUM,
TOTAL "TOTAL (MB)",
F.FREE "FREE (MB)",
TO_CHAR(ROUND(FREE * 100 / TOTAL, 2), '990.00') "FREE%",
TO_CHAR(ROUND((TOTAL - FREE) * 100 / TOTAL, 2), '990.00') "USED%",
ROUND(MAXSIZES, 2) "MAX (MB)"
FROM (SELECT TABLESPACE_NAME,
COUNT(FILE_ID) FILENUM,
SUM(BYTES / (1024 * 1024)) TOTAL,
SUM(MAXBYTES) / 1024 / 1024 MAXSIZES
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) A,
(SELECT TABLESPACE_NAME, ROUND(SUM(BYTES / (1024 * 1024))) FREE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F
WHERE A.TABLESPACE_NAME = F.TABLESPACE_NAME
25、增加数据库表空间
增加表空间大小的四种方法
Meathod1:给表空间增加数据文件
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;
Meathod2:新增数据文件,并且允许数据文件自动增长
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
Meathod3:允许已存在的数据文件自动增长
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF'
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
Meathod4:手工改变已存在数据文件的大小
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF'
RESIZE 100M;
26、数据库锁表处理
1.下面的语句用来查询哪些对象被锁:
select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;
2.下面的语句用来杀死一个进程:
alter system kill session '24,111'; (其中24,111分别是上面查询出的sid,serial#)
【注】以上两步,可以通过Oracle的管理控制台来执行。
3.如果利用上面的命令杀死一个进程后,进程状态被置为"killed",但是锁定的资源很长时间没有被释放,那么可以在os一级再杀死相应的进程(线程),首先执行下面的语句获得进程(线程)号:
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=24 (24是上面的sid)
4.在OS上杀死这个进程(线程):
1)在unix上,用root身份执行命令:
#kill -9 12345(即第3步查询出的spid)
2)在windows(unix也适用)用orakill杀死线程,orakill是oracle提供的一个可执行命令,语法为:
orakill sid thread
其中:
sid:表示要杀死的进程属于的实例名
thread:是要杀掉的线程号,即第3步查询出的spid。
例:c:>orakill orcl 12345