Oracle基本操作汇总

--10g 新增的表空间类型:大文件 (Bigfile) 表空间。
--10g 数据库在创建的时候,会指定默认的表空间类型。如果不特殊指定的话,默认为 SMALLFILE 类型的表空间。
SELECT * FROM database_properties WHERE property_name = ‘DEFAULT_TBS_TYPE‘;

--如果我们创建表空间的时候不指定类型,那么默认创建的都是 SMALLFILE 类型的表空间。可以通过 ALTER DATABASE 命令来修改数据库默认的表空间类型:
ALTER DATABASE SET DEFAULT bigfile TABLESPACE;
ALTER DATABASE SET DEFAULT smallfile TABLESPACE;

--创建 BIGFILE 类型的表空间,只需指定额外的一个参数 BIGFILE 即可,其他和原有创建表空间语法类似:
CREATE BIGFILE TABLESPACE bftbs DATAFILE ‘/u01/app/oracle/oradata/DEMO/bftbs01.dbf‘ SIZE 5M;

--DBA_TABLESPACES (USER_TABLESPACES)与 V$TABLESPACE 这两个视图可以查看 BIGFILE 表空间的相关信息。先看看 DBA_TABLESPACES 在 10g 中有了什么变化:
SELECT tablespace_name, bigfile FROM dba_tablespaces;

--创建表空间
CREATE TABLESPACE CAIHUI0331 DATAFILE
‘D:\ORACLE\product\11.1.0\ORADATA\ORCL\ORACLE\CAIHUI0331.DBF‘ SIZE 32000M

--开启自动扩展
ALTER DATABASE DATAFILE ‘D:\ORACLE\product\11.1.0\ORADATA\ORCL\ORACLE\FINCHINAFCDD.DBF‘ AUTOEXTEND ON;

--增加数据文件
ALTER TABLESPACE CAIHUI0331 ADD DATAFILE
‘D:\ORACLE\product\11.1.0\ORADATA\ORCL\ORACLE\CAIHUI0331_3.DBF‘ SIZE 32000M;

--为SYSTEM表空间增加一个数据文件SYSTEM02.DBF(注意新增的数据文件不要声明)
ALTER TABLESPACE "SYSTEM" ADD DATAFILE ‘E:\APP\ADMINISTRATOR\ORADATA\WEBDB\SYSTEM02.DBF‘ SIZE 5
00M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;

--修改表空间数据文件大小
alter database datafile ‘D:\ORACLE\product\11.1.0\ORADATA\ORCL\ORACLE\FINCHINAFCDD.DBF‘ resize 2000m

--删除数据文件
alter tablespace CAIHUI0331 drop datafile ‘D:\ORACLE\product\11.1.0\ORADATA\ORCL\ORACLE\CAIHUI_1.DBF‘;

--删除表空间和数据文件
DROP TABLESPACE tablespace_name [INCLUDING CONTENTS [AND DATAFILES]]
INCLUDING CONTENTS -- 删除表空间及所有段
INCLUDING CONTENTS [AND DATAFILES] --删除表空间、所有段、数据文件、同时删除系统中的物理文件

DROP TABLESPACE CAIHUI INCLUDING CONTENTS AND DATAFILES
DROP TABLESPACE FINCHINAFCDD01

--查看特定表空间
SELECT B.FILE_ID AS 文件ID
,B.TABLESPACE_NAME AS 表空间
,B.FILE_NAME AS 物理文件名
,B.BYTES / 1024 / 1024 AS 总字节数
,(B.BYTES - SUM(NVL(A.BYTES, 0))) / 1024 / 1024 AS 已使用
,SUM(NVL(A.BYTES, 0)) / 1024 / 1024 AS 剩余
,SUM(NVL(A.BYTES, 0)) / (B.BYTES) * 100 || ‘%‘ AS 剩余百分比
FROM DBA_FREE_SPACE A
,DBA_DATA_FILES B
WHERE A.FILE_ID = B.FILE_ID
AND B.TABLESPACE_NAME in (‘ZMINFO‘,‘ZMINFO‘)
GROUP BY B.TABLESPACE_NAME
,B.FILE_NAME
,B.FILE_ID
,B.BYTES
ORDER BY B.TABLESPACE_NAME
--查看表全部空间
SELECT B.FILE_ID AS 文件ID,
B.TABLESPACE_NAME AS 表空间,
B.FILE_NAME AS 物理文件名,
B.BYTES/1024/1024 AS 总字节数,
(B.BYTES - SUM(NVL(A.BYTES, 0)))/1024/1024 AS 已使用,
SUM(NVL(A.BYTES, 0))/1024/1024 AS 剩余,
SUM(NVL(A.BYTES, 0)) / (B.BYTES) * 100 || ‘%‘ AS 剩余百分比
FROM DBA_FREE_SPACE A, DBA_DATA_FILES B
WHERE A.FILE_ID = B.FILE_ID
GROUP BY B.TABLESPACE_NAME, B.FILE_NAME, B.FILE_ID, B.BYTES
ORDER BY B.TABLESPACE_NAME
--查看表空间是否具有自动扩展的能力
SELECT T.TABLESPACE_NAME,D.FILE_NAME,
D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUS
FROM DBA_TABLESPACES T,DBA_DATA_FILES D
WHERE T.TABLESPACE_NAME =D.TABLESPACE_NAME
ORDER BY TABLESPACE_NAME,FILE_NAME;

--删除用户及数据
DROP USER CAIHUI0331 CASCADE

--创建用户
CREATE USER CAIHUI
IDENTIFIED BY CAIHUI
DEFAULT TABLESPACE CAIHUI
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;

--修改用户表空间
ALTER USER zminfo DEFAULT TABLESPACE ZMINFO;

--用户授权
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 CAIHUI

--导入格式
imp CAIHUI0331/CAIHUI0331 file=‘E:\财汇数据\财汇基础数据\caihui0331.dmp‘ log=‘E:\财汇数据\财汇基础数据\caihui0331.log‘ full = y ignore = y

--给用户增加导入数据权限的操作
第一, 启动sql*puls
第二,以system/manager登陆
第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)
第四,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 用户名字
第五, 运行-cmd-进入dmp文件所在的目录,
imp userid=system/manager full=y file=*.dmp
参考语句; imp aichannel/[email protected] full=y file=file= d:datanewsmgnt.dmp ignore=y
或者 imp userid=system/manager full=y file=filename.dmp

imp userid=CAIHUI0331/[email protected] full=y file=‘E:\财汇数据\财汇基础数据\caihui0331.dmp‘ ignore=y; --1
imp userid=CAIHUI/[email protected] full=y file=‘E:\财汇资讯数据\caihui.dmp‘ ignore=y; --2

--参考文献_1
/*
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。

执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
DOS中可以执行时由于 在oracle 8i 中 安装目录ora81BIN被设置为全局路径,
该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。

下面介绍的是导入导出的实例。
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/[email protected] file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/[email protected] file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/[email protected] file= d:\datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/[email protected] file=d:\daochu.dmp tables=(table1) query=" where filed1 like ‘00%‘"

上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 compress=y 来实现。

数据的导入
1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
imp system/[email protected] file=d:\daochu.dmp
imp aichannel/[email protected] full=y file=d:\datanewsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:daochu.dmp中的表table1 导入
imp system/[email protected] file=d:\daochu.dmp tables=(table1)

基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

注意:
操作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。

附录一:
给用户增加导入数据权限的操作
第一,启动sql*puls
第二,以system/manager登陆
第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)
第四,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 用户名字
第五, 运行-cmd-进入dmp文件所在的目录,
imp userid=system/manager full=y file=*.dmp
或者 imp userid=system/manager full=y file=filename.dmp

执行示例:
F:WorkOracle_Databackup>imp userid=test/test full=y file=inner_notify.dmp

屏幕显示
Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006
(c) Copyright 2000 Oracle Corporation. All rights reserved.

连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production

经由常规路径导出由EXPORT:V08.01.07创建的文件
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换)
. 正在将AICHANNEL的对象导入到 AICHANNEL
. . 正在导入表 "INNER_NOTIFY" 4行被导入
准备启用约束条件...
成功终止导入,但出现警告。

附录二:
Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.
先建立import9.par,
然后,使用时命令如下:imp parfile=/filepath/import9.par
例 import9.par 内容如下:
FROMUSER=TGPMS
TOUSER=TGPMS2 (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
file==/backup/ctgpc_20030623.dmp
log==/backup/import_20030623.log

在导入导出命令中加上feedback=1000可以让过程显示一个不断增多的“...”,以改变以往的闪烁的光标

New:

exp/imp已经很好用了,但是唯一的确定是速度太慢,如果1张表的数据有个百千万的,常常导入导出就长时间停在这个表这,但是从Oracle 10g开始提供了称为数据泵新的工具expdp/impdp,它为Oracle数据提供高速并行及大数据的迁移。

imp/exp可以在客户端调用,但是expdp/impdp只能在服务端,因为在使用expdp/impdp以前需要在数据库中创建一个Directory

create directory dump_test as ‘/u01/oracle10g‘;

grant read, write on directory dump_test to piner

然后就可以开始导入导出

expdp piner/piner directory=dump_test dumpfile=user.dmp 导出用户的数据

expdp piner/piner directory=dump_test dumpfile=table.dmp tables=test1,test2 导出表数据

impdp piner/piner directory=dump_test dumpfile=user.dmp 导入该用户数据

impdp piner/piner directory=dump_test dumpfile=table.dmp 导出表数据

1. 导出用户 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp
2. 导入用户 impdp user2/pass2 directory=dumpdir dumpfile=user1.dmp REMAP_SCHEMA=user1:user2 EXCLUDE=USER
*/

时间: 2024-11-02 22:28:13

Oracle基本操作汇总的相关文章

64位 SQL Server2008链接访问Oracle 过程汇总解决方法记录

64位 SQL Server2008链接访问Oracle 过程汇总解决方法记录 经过几天不停的网上找资料,实验,终于联通了. 环境:系统:win 2008 ,SqlServer2008 R2, 连接Oracle10g 在SqlServer2008 R2机器上需要安装Oracle客户端32位和64位两个,然后配置连接别名.设置注册表.详细情况见下面 1.错误1 ------------------------------------------------ 64位机器上建立OLE_DB链接报错 报

Oracle 异常处理汇总

Oracle 异常处理汇总 1.plsql无法连接 安装oracle,中间录入密码,用户是:sys,pass: 录入的密码. 连接数据库,建议创建新的用户,最好别直接用sys 安装完毕,则需要配置Net Configration Assistant,才能通过pl/sql连接 确保服务监听服务已经启动 2.遇到ORACLE错误12514 解决方案: 1) 找到监听文件 C:\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora 打开:

SVN基本操作汇总

1.创建源代码库 // 用默认的文件系统格式(Berkeley DB)创建一个Subversion源代码库 svnadmin create repos // 如果想要使用FSFS格式,使用如下命令 svnadmin create --fs-type fsfs /var/svn/repos 2.签出源代码 // repoURL可能是http, https或者svn开头的地址.比如: // http://localhost/svn/myproject svn co <repoURL> 3.签入源代

oracle基本操作和查锁

oracle基本操作desc all_tables; --查看表结构select from all_tables;--查看当前数据库所有的表select table_name from user_tables;查看当前登录的用户的表:select from dba_users;查看有哪些用户 --与视图有关的表select from user_viewsselect from dba_views --涉及到查看表空间和数据文件的几个表SELECT FROM dba_free_space --查看

Oracle异常汇总

持续更新中,可参见https://hnuhell.gitbooks.io/oracle_errmg/content/或https://hnuhell.github.io/Oracle_ERRMG/上的页面. ORA-00000 to ORA-00877 ORA-00000: 正常的成功的完成(操作) ORA-00000: normal, successful completion 原因1: 正常执行完成.[部分验证] Normal exit. 分析: 此异常多数为程序没有执行SQL语句或者说成功

oracle基本操作 转载

ORACLE的简单介绍 ORACLE公司是一家提供综合技术产品.方案.服务的数据库公司 ORACLE数据库设计成可大量存储数据,快速查询数据,保证数据的安全和一致性,跨网络的分布式管理及客户-服务器的配置等. ORACLE SQL语法符合ANSI 1986标准SQL 和数据库交流的命令式语言 SQL*PLUS ORACLE的一种工具, 用来运行SQL和PL/SQL语句 PL/SQL ORACLE的过程化编程语言 一.选择行 1. 简单的SELECT 语句 SELECT [DISTINCT] {*

Oracle基本操作(二)

oracle数据库的基本操作: 创建表空间 插拔数据库 创建用户 创建数据表(事务) 索引 视图 序列 同义词 一,创建表空间例: create tablespace school //创建表空间school2 datafile '/oracle/app/oracle/oradata/school01.dbf' //指定表空间文件存放位置3 size 10m autoextend on; //指定大小,空间可以扩容 调整表空间大小1,调整大小 SQL> alter database datafi

谈谈Oracle基本操作(上)

当前我们市面上流行的数据库有sybase,Oracle,DB2,Mysql,sqlSever,MSQL, MariaDB 今天我们主要谈谈Oracle数据库 一:Oracle原理 1:什么是数据库:数据库管理的是硬盘中的数据,把数据打包,方便管理,数据增删改查,它的保存数据的是数据库文件;数据库一切都是表:用数据表来保存数据; 2:分类: (1)结构化数据库:保存在硬盘当中,SQL语句查询;以SQL语句模型为基础的数据库 (2)非结构化数据库:mongoDB,Redis,memecache;把数

谈谈Oracle基本操作(下)

Oracle事物 事物是保证数据一致性(正确性)的一种机制,由一组相关的DML语句组成,该组DML语句要么全部成功,要么全部失败.银行转账.DML:增删改 数据库内存和磁盘原理 :  硬盘是不错数据处理的,只是数据的存储,任何对硬盘中数据更改操作都是先载入到内存,然后对数据进行更改,然后把更改好的数据写回硬盘.硬盘只有两个操作读-写;在数据库频繁的增删改的操作中,容易引起磁盘碎片,降低效率,浪费空间,所以有的数据需要重整,所以,这里可以看出表头和数据是分离的,在数据库基本原理中,需要我们comm