当前位置:首页 > Data - base
Oracle Concept:
?
An Oracle database server consists of an Oracle database and an Oracle instance. Every time a database is started, a system global area (SGA) is allocated and Oracle background processes are started. The combination of the background processes and memory buffers is called an Oracle instance.
? A schema is a collection of logical structures of data, or schema objects. A
schema is owned by a database user and has the same name as that user. Each user owns a single schema. Schema objects can be created and manipulated with SQL and include the following types of objects:Tables/views/Stored functions, procedures, and packages/synonyms
oracle 创建一个用户就创建了一个与之相关的schema。 SID 和service name 指的就是一个database的实例。 用SYSDBA的角色登录,就可以创建用户。 普通用户登录,可以看到他有权限看到的内容。 一般,这个用户只看到他自己的schema。
一个schema就是一些tables views procedures 等的集合。
一个oracle instance 就是一个database server。包括物理的存储和进程。 一个orcale instance等同于一个mysql的安装。 oracle中的schema就是mysql中的database。
sqlplus 是oracle的一个客户端。
?
登录sqlplus: sqlplus /nolog
conn username/password@connectionname conn sys/oracle@115.perf as sysdba
Oracle special SQL/sys Tables
? ? ?
Desc tablename
Select * from all_tables where owner='username'; 主外键约束的信息存在view user_constraints
select * from user_constraints where
R_CONSTRAINT_NAME in (select constraint_name from user_constraints where table_name = 'DEPT') ;
查看所有 reference DEPT表的外键 删除所有表的外键约束:
? ? SELECT object_name, object_type FROM user_objects
Oracle grant/revoke privileges
http://www.techonthenet.com/oracle/grant_revoke.php
Oracle create/drop user
create user {0} identified by {0}
default tablespace usERS temporary tablespace tEMP profile dEFAULT;
-- Grant/Revoke role privileges
grant connect to {0}; grant dba to {0};
grant resource to {0};
-- Grant/Revoke system privileges grant unlimited tablespace to {0};
drop user user_name cascade;
Oracle Exp/Imp 文件格式是二进制的
需求:
1)迁移某oracle数据库用户下所有非用户数据的结构(即包括:table,index,procedure等等除了表数据以外的所有该用户的结构).
2)迁移该用户下的指定的一部分表的用户数据。
测试环境:
solaris9+oracle817 to redhat2.1+oracle817
================================================== 按下列步骤(一共5步),即可成功:
导出:1)按用户模式,exp导出该用户的所有非用户数据的结构,文件为:wapmail_nodata.dat
$exp wapmail/passwd@wapmail file=wapmail_nodata.dat rows=n
2)按用户模式,指定表清单导出该用户指定的表清单里的表数据:wapmail_list_table_data.dat
$exp wapmail/passwd@wapmail file=wapmail_list_table_data.dat parfile=table.list
table.list文件内容,用cat显示如下: $cat table.list tables= (areano, blacklist,
cdma_segarea, ..... zone)
================================================== 导入:
3)按用户模式,imp导入wapmail_nodata.dat,指定INDEXES=n和CONSTRAINTS=n,不导入索引和约束。
$imp wapmail/wapmail@maildb file=wapmail_nodata.dat INDEXES=n CONSTRAINTS=n
4)按用户模式,imp导入wapmail_list_table_data.dat里的数据,只指定ignore=y。 $imp wapmail/wapmail@maildb file=wapmail_list_table_data.dat ignore=y
5)按用户模式,imp导入wapmail_nodata.dat,只指定ignore=y。 $imp wapmail/wapmail@maildb file=wapmail_stru.dat ignore=y
此时还有一个问题,JOB任务无法导入,因为在导出文件里得到的是具体的job_id了。此时重新提交JOB即可。
除此外,问题都解决了。
================================================== PS:
wapmail_list_table_data.dat好处是只导出了部分表数据,同时满足需求,导出文件没有整个用户数据大,利于转移。
ORACLE EXPORT DDL
ORACLE获取DDL的几种常用方法 转自CSDN (原作 brucelau)
一、通过toad、plsql develop等第三方工具进行导出DLL操作,用这种办法的好处在于操作简单方便,但需要安装,下面简单介绍一下用这两个工具获得DLL语句的操作。
1、Toad 工具 (可以到www.quest.com网站上下载) a、启动toad,连接目标数据库
b、点击DBA->Generate Schema Script,通过操作界面,选择相应的Schema,当然可以通过其他的几个tab页面选择相应的条件,点击Execute按钮。
2、plsql develop 工具
a、启动plsql develop,连接目标数据库
b、点击Tools->Export Tables,选择相应的内容,然后点击Export按钮,其实这些工具也是调用Oracle的Exp工具而已,如果你没有指定文件目录,文件会出现在plsql develop软件的安装目录下。
二、通过EXP/IMP工具
Oracle提供的最原始最实用的导入导出工具,我们大体上可以分为三种办法实现导出DDL。
1、通过imp指定indexfile参数,但这种办法不爽在于有每行前会有REM exp userid=... tables=emp rows=n file=emp.dmp imp userid=... file=emp.dmp indexfile=emp.sql
2、 通过imp指定show=y,同时指定log参数,格式上也不是很好 exp userid=... tables=emp rows=n file= emp.dmp imp userid=... file= emp.dmp show=y log=emp.sql
3、利用unix下有strings命令(这种方法比较野蛮): exp userid=... tables=tab1 rows=n file=tab1.dmp strings emp.dmp >emp.sql emp.sql中就有DLL语句了
三、通过9i的DBMS_METADATA包得到DLL语句 基本上用到的语法如下:
set echo off
set feedback off set heading off set verify off
set newpage none set linesize 999
set pagesize 0
set term off set trims off
set trimspool on set trimout off set timing off
set long 90000 REM 必需
1、获取单个的建表和建索引的语法 spool DEPT.sql
select dbms_metadata.get_ddl('TABLE','DEPT','SCOTT') from dual; select dbms_metadata.get_ddl('INDEX','DEPT_IDX','SCOTT') from dual; spool off;
2、获取一个SCHEMA下的所有建表和建索引的语法,以scott为例: spool scott_schema.sql
SELECT DBMS_METADATA.GET_DDL('TABLE',table_name) FROM USER_TABLES; SELECT DBMS_METADATA.GET_DDL('INDEX',index_name) FROM USER_INDEXES; spool off;
3、获取某个SCHEMA的建全部存储过程的语法 spool procedures.sql
select DBMS_METADATA.GET_DDL('PROCEDURE',object_name) from user_objects where object_type = 'PROCEDURE' AND status='VALID'; spool off;
4、获取某个SCHEMA的建全部视图/的语法 spool procedures.sql
select DBMS_METADATA.GET_DDL('VIEW',object_name) from user_objects where object_type = 'VIEW' AND status='VALID'; spool off;
注:PACKAGE 也同样适用,格式不是很好;
Oracle paging
SQL> select * from item where rownum < 2;
pl/sql developer 连接远程数据库。
首先要安装oracle client, 然后修改
\\oracle\\product\\10.2.0\\client_1\\NETWORK\\ADMIN\\TNSNAMES.ORA. 在此文件下增加: TEST =
(DESCRIPTION = (ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 222.22.22.22 )(PORT = 1521)) //写入远端IP )
共分享92篇相关文档