开启oracle database 控制面板(oracle enterprise manager)
1:先检查自己的环境变量设置包括了ORACLE_HOME,ORACLE_SID已经设置
linux中3个存储环境变量位置/etc/profile,用户目录~/.bash_profile(一般数据库的配置都是在这里,自己确定好数据库操作的用户,root用户的用户目录是/root,其他用户都是在/home/用户名下),export 变量名 = 变量值 在当前shell和其子shell中有效,当关闭shell,变量失效。
windows查看注册表,local_machine/software/oracle/key_oracle确定存在ORACLE_HOME,ORACL_SID变量,在环境变量也必须有
2:确定ORACLE_HOME/bin目录包括在$PATH变量中,以便使用oracle的命令
3:启动oracle em(em在ORACLE_HOME/bin目录下的脚本文件名是emctl)start status stop
输入命令./emctl start dbconsole
如果通过shell连接服务器的话一定要跳转到$ORACLE_HOME/bin目录下才可以启动emctl
4:这样就可以通过https访问了(注意不是http是https)
端口默认是1158可以自己查看$ORACLE_HOME/install/portlist.ini
文件
或者$ORACLE_HOME/自己定义的ORACLE_SID名称/sysman/config/emd.properties
(这个文件夹不一定存在)
5:连接成功后登陆时需要账户密码,这里的账户和密码就是在创建数据库的时候自己创建的数据库用户和密码(这个用户一定要控制面板的操作权限才可以访问,实在不行就用SYSTEM访问,默认SYSTEM是拥有所有权限的)
6:em可以登陆了,但是备份的数据还没有导入,(导出部分先不涉及),成功从原数据库中获取dmp数据文件后,想办法把数据文件放入服务器中,我一般是用自作一个数据下载链接(http,https,ftp都可以)通过wget下载到服务器中,最好将备份数据文件存储在$ORACLE_HOTM/rdbms/log目录下。
在wget进行自动下载文件时,(可能会有不能解释目标地址的错误,那是因为服务器的网络配置没有配置域名解析dns,通过修改/etc/resolv.conf文件添加或修改nameserver dnsIP地址,获取支持)
7:oracle的基本导入,一般通过导出获得的是dmp文件,dmp文件已经包括了
数据表的定义
类型定义
数据表数据
表索引
完整性约束,触发器,程序
位图,域索引(这都是神马啊,头一听说数据文件中竟然还有位图和域索引,不知所云啊)
导入之前,先确定自己创建的数据库是通过DBCA创建的还是手动创建的,手动创建的数据库有先运行起来creatxp.sql或者catalog.sql(主要工作:创建必要的导入视图到数据字典中;创建EXP_FULL_DATABASE
和IMP_FULL_DATABASE
角色;分配EXP_FULL_DATABASE
和 IMP_FULL_DATABASE
角色必要的权限;分配EXP_FULL_DATABASE
和 IMP_FULL_DATABASE
到DBA角色;记录安装的catexp.sql
的版本号)
导入表结构需要的权限
Privileges Required to Import Objects into Your Own Schema
Object | Required Privilege (Privilege Type, If Applicable) |
---|---|
Clusters |
|
Database links |
|
Triggers on tables |
|
Triggers on schemas |
|
Indexes |
|
Integrity constraints |
|
Libraries |
|
Packages |
|
Private synonyms |
|
Sequences |
|
Snapshots |
|
Stored functions |
|
Stored procedures |
|
Table data |
|
Table definitions (including comments and audit options) |
|
Views |
|
Object types |
|
Foreign function libraries |
|
Dimensions |
|
Operators |
|
Indextypes |
|
导入grands要的特权(这是用户组吗?)
调用import方法:
(在使用这些方法前最好设置导入参数BUFFER
决定了要导入的数组的行数
buffer_size = rows_in_array * maximum_row_size设置规则是,buffer_size必须足够大可以包括所有行,如果buffer不能包含数据表中的最大行,import时会分配最大可用buffer)
1.进入命令行(终端)
在进行导入dmp文件的时候,如果是完整的导入是会把objects,packages,functions,tables,users,roles...统统导入进去,在pl/sql中可以看到的那些文件夹都不会落下的,导入操作的时候可以选择参数控制那些要导入,那些不要导入。
imp PARAMETER=(value1,value2,...,valuen)参数个数不能超过命令行最大行数 commit default:(coomit:n) 判断是否需要在每次更新数据后立即commit,默认只有在一张表insert完成后才进行提交,当遇到错误后回滚。commit=y后没插入一条就会提交 compile default:(compile:y) 再导入的时候是否在创建packages, procedures, and functions的时候一并编译。 constraints default:(constraints:y) 导入的时候死否导入约束,主键约束和对象表不管怎么设置都是要被导入的 data_only default:(data_only:n) 当设置data_only=y后,只能导入data,元数据metadata是不能被导入的 datafiles default:(datafiles:none) 当TRANSPORT_TABLESPACE设置y后,使用datafiles
参数可以列出传输到数据库的数据文件 destroy default:(destroy:n)DESTROY=y
导致导入的数据表存在原始数据库时,删除原有数据才会导入 feedback default:(feedback:0)FEEDBACK=10
将会在没导入10行数据后进行一次回显 file default(file:expdat.dmp) 待导入的文件名,可以是多个文件file1,file2 filesize default(是操作系统的设置而定) filesize:2kb等同于filesize:2048.用于表示导出时最大文件 fromuser default(fromuser:none) 只能是IMP_FULL_DATABASE
角色的用户,在导入操作的时候一定要指定touser,否则就会报错,如果没有指定touser full default(full:y) 是否导入完整的dmp文件 grants default(grants:y) 是否导入对象授权 help default(help:none) help=y将会调用显示导入操作的参数描述 ignore default(ignore:n) 指定数据表创建失败的操作,ignore:n回显错误, indexes default(indexes:y) 是否导入索引 indexfile default(indexfile:none) 指定一个文件创建索引声明 log default(log:none) 指定一个日志文件接受错误和消息 parfile defalult(parfile:none) 指定一个文件包括导入操作参数 recordlength default(操作系统设定) 指定记录文件的记录长度 resumable default(resumable:n) 指定是否可以恢复分配空间 resumable_name default(resumable_name:User USERNAME (USERID), Session SESSIONID, Instance INSTANCEID
) resumable_timeout 错误需要被处理的时间段 和恢复分配空间有关 rows default(rows:y) rows:n所有导入的表将会在导入完成后锁住 show default(show:n) 只能和FULL=y
,FROMUSER
,TOUSER
, orTABLES
其他参数一起使用 还有几个(烦)
2.参数文件
将参数和value保存到文件中,不同的数据库保存不同的参数文件
PARAMETER=(value1, value2, ...)确定
参数文件的部分内容FULL=yFILE=dba.dmpGRANTS=yINDEXES=yCONSISTENT=y
3.交互模式
linux中访问oracle:
sqlplus 工具
sqlplus /nolog不连接任何数据库;
数据库启动:
$ sqlplus "/as sysdba"进入到数据库中
SQL> startup启动数据库
SQL> shutdown关闭数据库