(1)新建数据库
可以使用图形化界面直接新建一个空的数据库
(2)连接数据库
在cmd命令中连接数据库的方法:
方式一:
输入sqlplus,回车
输入用户名:system,回车
输入密码:orcl,回车
方式二:
输入sqlplus system/orcl@orcl,回车(system是用户名,orcl是密码,@后面的orcl是库的名字)
(数据库安装完成后,有两个系统级的用户 :
1) system 默认密码为 :manager;
2) sys 默认密码为 :change_on_install)
(3)创建临时表空间
create temporary tablespace 临时表空间名 tempfile 文件位置 size 临时表空间初始大小 autoextend on next 临时表空间自动增长的大小 maxsize 临时表空间最大的大小(建议最大设为32G) extent management local;
例如:create temporary tablespace user_temp tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local;
(4)创建表空间
create tablespace 表空间名 logging datafile 文件位置 size 临时表空间初始大小 autoextend on next 临时表空间自动增长的大小 maxsize 临时表空间最大的大小 extent management local;
例如:create tablespace user_data logging datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local;
(5)创建用户并指定表空间
create user 用户名 identified by 密码 default tablespace 表空间名 temporary tablespace 默认表空间名;
例如:create user username identified by password default tablespace user_data temporary tablespace user_temp;
(6)给用户授予权限(Oracle权限介绍见下面附录2)
GRANT 权限 to 用户名;
例如:GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW , DROP ANY IEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE,CREATE SESSION TO ora;
(7)数据库的导出
1)用Sytem完全导出数据库(所有数据库的默认账号:system;密码:manager)
exp system/manager@TEST file="d:\daochu.dmp" full=y;
2)导出特定用户下的数据库
exp 登入数据库名/登入数据库密码@服务名 file=文件存放路径 log=日子文件存放路径 owner=用户名;
例如:exp username/password@orcl file="E:\DATABASE_BAK\orcl.dmp" log="E:\DATABASE_BAK\orclLog.log" owner=(username) full=y ;
注:如果该用户有DBA权限则导出所有数据。
(8)数据库的导入
导入数据前要保证该用户下不存在,任何表结构、数据、函数、包等。
如果存在,可以先清空。(采用直接删除用户或表空间见下面附录1)
以用户名密码登录后,在执行sql窗口中(例如:PLSQL Developer的Sql窗口)执行以下sql:
BEGIN
FOR rec IN
(SELECT object_name,object_type from user_objects
WHERE object_type='PROCEDURE'
OR object_type='TABLE'
OR object_type='VIEW'
OR object_type='FUNCTION'
OR object_type='PACKAGE'
OR object_type='SEQUENCE'
)
LOOP
IF rec.object_type='TABLE' THEN
EXECUTE IMMEDIATE 'DROP '||rec.object_type||' '||rec.object_NAME||' CASCADE CONSTRAINTS';
ELSE
EXECUTE IMMEDIATE 'DROP '||rec.object_type||' '||rec.object_NAME;
END IF;
END LOOP;
END;
然后执行导入语句:
1)用Sytem完全导入数据库(所有数据库的默认账号:system;密码:manager)
imp system/manager@TEST file="E:\DATABASE_BAK\orcl.dmp" full=y ignore=y;
2)导入特定用户下的数据库
imp 用户名/密码@数据库 file=导入的文件路径 fromuser=需要导入的那个文件是属于哪个用户的 touser=要导入的用户名 ignore=y;
例如:imp username/password@orcl file="E:\DATABASE_BAK\orcl.dmp" log="E:\DATABASE_BAK\orclLog.log" fromuser=username touser=musername ignore=y;
注:两个数据库同名则fromuser=username touser=musername 可省略。(添加ignore=y参数,防止已存在数据,不能覆盖导入,会报错,相当于直接跳过该错误继续导入;建议再导入前先清空数据库)
附录1
(1)删除用户及用户所有的对象
drop user 用户名 cascade;
注:cascade 参数是级联删除该用户所有对象;只是删除了该user下的schema objects,是不会删除相应的tablespace的。
(2)删除表空间
drop tablespace 表空间名 including contents and datafiles cascade constraints;
注:including contents 删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉
including datafiles 删除表空间中的物理文件
cascade constraints 同时删除tablespace中表的外键参照
附录2
(1)系统权限和实体权限
1)系统权限分为三类:
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。
注:系统权限只能由DBA用户授出:sys, system(权限范围:sys>system)
[普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。]
授权命令: grant connect, resource, dba to 用户名1 [,用户名2]...;
2)实体权限分类:
select, update, insert, alter, index, delete,
all //all包括所有权限
execute //执行存储过程权限
授权命令: grant all to 用户名1 [,用户名2]...;
小技巧:Orcle密码忘记怎么办?
在服务器端找回密码,
(1)打开cmd窗口,输入 sqlplus / as sysdba
(2)运行cmd ,输入 alter user 用户名 account unlock; (用户名为你想要找回/修改 密码的用户,这里举例为 system 用户 )
(3)alter user 用户名(system) identified by 新密码(m1234) ; 修改密码 (注意:一定要在英文输入状态下输入字母,否则不识别 )
(4)修改成功 ,现在可以用新密码 m1234 登录。