oracle表空间

简单了解数据在Oracle文件中的存储

霸气de小男生 提交于 2020-02-26 17:50:01
2010-02-13 目的: 1、 了解数据块转储 2、 简单认证数据在ORACLE文件的存储 测试环境: VM+Win2003+Oracle11g DB_BLOCK_SIZE 8k C:\Documents and Settings\Administrator>sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on 星期一 2月 13 21:03:38 2012 Copyright (c) 1982, 2010, Oracle. All rights reserved. SQL> conn / as sysdba 已连接。 SQL> create tablespace test1 datafile 'E:\app\Data\orcl\test1' size 20M ; 表空间已创建。 SQL> Create user firefox identified by qwe123 temporary tablespace temp default tablespace test1 quota unlimited on test1; 用户已创建。 SQL> select extent_management,allocation_type,segment_space_management from dba_tablespaces

oracle数据库迁移

穿精又带淫゛_ 提交于 2020-02-26 15:41:00
一、导出 导出用户对象: 1、plsql登录到数据库 2、查询当前用户的默认表空间(以DEMO1账户为例) 用DEMO1用户登陆plsql,在上图的窗口里的Users的分支下找到当前的用户名DEMO1,再点view,在右边的Default tablespace就可以查看该用户的默认表空间(TBS_DEMO1)。 3、导出DEMO1用户的所有用户对象(表结构): 在DEMO1用户下,点击tools,Export User Objects,在右侧弹出的窗口按如上设置进行设置,重点是Single file,然后在Output file选择路径,再点击export导出用户对象文件(文件为sql格式)。 注意:这个导出完成后可能没有什么成功或者完成一类的提示,只需要看到下条的进度条已经走完。再看一下生成出来的log文件最后有spoo off就说明导完了。 导出表数据: 在右侧窗口全选所有表对象,再点击下方的Output file选择输出路径,再点击Export生成数据文件(文件格式为dmp格式) 二、导入 在新的数据库服务器用sys账号登陆sql 1、新建用户表空间(表空间的名字要和导出的一致,这里以TBS_DEMO1为例) create tablespace TMS_DEMO1 datafile ‘D:\ORACLE11GR2\ORADATA\PCILAB\DATA.DBF’ size

Oracle常用系统表和视图归纳

落爺英雄遲暮 提交于 2020-02-24 10:47:20
目录 常用系统表或者视图 重要字段说明 常用系统表或者视图 NAME TYPE OWNER Description DBA_OBJECTS 当前数据库里的所有对象 USER_OBJECTS VIEW 当前用户拥有的所有对象(不显示OWNER字段) ALL_OBJECTS 当前用户能够访问的所有对象,注意object_type 和 owner字段 DBA_TABLES 当前数据库里所有的关系表 ALL_TABLES 当前用户可访问的关系表 USER_TABLES 当前用户拥有的关系表 ALL_TAB_COLUMNS 系统视图,存放表信息(数据库名 表名,表字段名,字段类型,字段长度,默认值等) DBA_TABLESPACES 数据库中的所有表空间 USER_TABLESPACES 当前用户可访问的表空间 ALL_SOURCE VIEW SYS 记录了该用户可访问的所有数据库对象的脚本信息(DDL) 重要字段说明 名字 字段 说明 ALL_SOURCE TYPE 对象类型,如FUNCTION, JAVA SOURCE, PACKAGE, PACKAGE BODY, PROCEDURE, TRIGGER, TYPE, TYPE BODY等 来源: CSDN 作者: Trust-The-Process 链接: https://blog.csdn.net/weixin_44728363

Oracle Dataguard原理

房东的猫 提交于 2020-02-22 18:08:39
Oracle DataGuard是Oracle自带的数据同步功能,基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用这些日志文件,从而使目标数据库与源数据库保持同步,是一种数据库级别的高可用性方案。 DataGuard可以提供Oracle数据库的冗灾、数据保护、故障恢复等,实现数据库快速切换与灾难性恢复。在生产数据库的保证"事务一致性"时,使用生产库的物理全备份创建备库,备库会通过生产库传输过来的归档日志或重做条目自动维护备用数据库。 DataGuard数据同步技术有以下优势: 1) Oracle数据库自身内置的功能,与每个Oracle新版本的新特性都完全兼容,且不需要另外付费。 2) 配置管理较简单,不需要熟悉其他第三方的软件产品。 3) 物理Standby数据库支持任何类型的数据对象和数据类型; 4) 逻辑Standby数据库处于打开状态,可以在保持数据同步的同时执行查询等操作。 5) 在最大保护模式下,可确保数据的零丢失。 一、架构 Oracle DataGuard由一个primary数据库(生产数据库)及一个或多个standby数据库(最多9个)组成。组成Data Guard的数据库通过Oracle Net连接,并且有可以分布于不同地域。只要各库之间可以相互通信,它们的物理位置并没有什么限制,不受操作系统的限制。 1.Primary 数据库

ORACLE告警日志文件

为君一笑 提交于 2020-02-22 04:13:11
告警日志介绍 告警日志文件是一类特殊的跟踪文件(trace file)。告警日志文件命名一般为alert_<SID>.log,其中SID为ORACLE数据库实例名称。数据库告警日志是按时间顺序记录message和错误信息。 告警日志位置 在ORACLE 10g中,BACKGROUND_DUMP_DEST参数确定了告警日志的位置,但是告警日志的文件名无法修改,告警日志的名称为:alert_<SID>.log ,其中<SID>是实例的名称。BACKGROUND_DUMP_DEST参数是动态的。 SQL> show parameter background_dump_dest; NAME TYPE VALUE --------------------- ----------- ------------------------------ background_dump_dest string /u01/app/oracle/admin/GSP/bdump SQL> 告警日志以及所有后台跟踪文件都会被写至BACKGROUND_DUMP_DEST参数所指定的目录。 在ORACLE 11g 以及ORACLE 12c中,告警日志文件的位置有了变化。主要是因为引入了ADR(Automatic Diagnostic Repository:一个存放数据库诊断日志、跟踪文件的目录)

oracle分区交换技术

﹥>﹥吖頭↗ 提交于 2020-02-22 00:01:27
交换分区的操作步骤如下: 1. 创建分区表t1,假设有2个分区,P1,P2. 2. 创建基表t11存放P1规则的数据。 3. 创建基表t12 存放P2规则的数据。 4. 用基表t11和分区表T1的P1分区交换。 把表t11的数据放到到P1分区 5. 用基表t12 和分区表T1p2 分区交换。 把表t12的数据存放到P2分区。 ----1.未分区表和分区表中一个分区交换 create table t1 ( sid int not null primary key, sname varchar2(50) ) PARTITION BY range(sid) ( PARTITION p1 VALUES LESS THAN (5000) tablespace test, PARTITION p2 VALUES LESS THAN (10000) tablespace test, PARTITION p3 VALUES LESS THAN (maxvalue) tablespace test ) tablespace test; SQL> select count(*) from t1; COUNT(*) ---------- 0 create table t11 ( sid int not null primary key, sname varchar2(50) ) tablespace

oracle表的管理和单行函数以及多行函数

只愿长相守 提交于 2020-02-21 18:43:46
1.创建表空间   表空间? ORACLE数据库的逻辑单元。 数据库---表空间 一个表空间可以与多个数据文件(物理结构)关联   一个数据库下可以建立多个表空间,一个表空间可以建立多个用户、一个用户下可以建立多个表。 create tablespace fan datafile 'D:\oracle\tablespace\fan.dbf' size 100m autoextend on next 10m   fan 为表空间名称   datafile 指定表空间对应的数据文件   size 定义的是表空间的初始大小   autoextend on 自动增长 ,当表空间存储都占满时,自动增长   next 后指定的是一次自动增长的大小。 -- 删除表空间 drop tablespace fan; 2.用户   创建用户: -- 创建用户 create user zhangsan identified by aaa default tablespace fan     identified by 后边是用户的密码     default tablespace 后边是表空间名称   oracle 数据库与其它数据库产品的区别在于,表和其它的数据库对象都是存储在用户下的。   用户赋权限:     新创建的用户没有任何权限,登陆后会提示          Oracle

Oracle导入导出

馋奶兔 提交于 2020-02-20 20:09:46
Oracle 10g 已经引入了数据泵(点击 Data Dump )技术,这项技术和之前的exp/imp有哪些好处呢,简单的来说就是恢复和备份速度非常快; 在说明数据泵的使用方法之前,我们先来了解二者的区别: 1、数据库的导入导出功能简介: 目前oracle官方提供两种导入导出方式:imp/exp和impdp/expdp; 2、两者简单比较: 命令 命令适用范围 效率 导出的DMP文件存放路径 IMP/EXP 服务端/客户端 低 当在客户端使用时存放在客户端;在服务端使用时存放在服务端 IMPDP/EXPDP 服务端/客户端 高 只存放服务器端 3、用法举例 用户名、表空间均相同的情况: imp user/password@127.0.0.1:1521/orcl file=d:\qis.dmp exp user/password@127.0.0.1:1521/orcl file=d:\qis.dmp full=y ignore=y create or replace directory impdp_dir as ‘d:\impdp_dir’;--注意物理盘符也要创建对应的目录 create or replace directory expdp_dir as ‘d:\expdp_dir’;--注意物理盘符也要创建对应的目录 grant read,write on directory

GoldenGate安装配置

我们两清 提交于 2020-02-18 07:53:38
GOLDENGATE安装 1. 下载与数据库对应版本的goldengate安装介质。 2. 创建goldengate系统用户,设置用户环境变量,如果是oracle,建议直接使用oracle作为用户安装。 3. 创建goldengate数据库用户,并授予足够权限,该用户至少应该有connect、resource、select any dictionary、select any table的权限。当然授予dba权限的话,那么就涵盖了所需的所有权限。 在此处使用的oracle数据库用户为 ggs 密码也是ggs。 提醒一天,ggs尽量使用自己的表空间。这样可以有效的进行维护。 建议脚本 SQL> grant connect, resource,unlimited tablespace,select any dictionary, select any table,insert any table,update any table,delete any table,alter any table,flashback any table to ggs; SQL>grant execute on dbms_flashback to ggs; SQL>grant execute on utl_file to ggs; 4. 将源端数据库设置为归档模式。 SQL>alter database

Oracle的rownum原理和使用

与世无争的帅哥 提交于 2020-02-17 07:47:15
整理和学习了一下网上高手关于rownum的帖子: 参考资料: http://www.cnblogs.com/mabaishui/archive/2009/10/20/1587165.html 对于Oracle的rownum问题,很多资料都说不支持>,>=,=,between……and,只能用以上符号(<、& lt;=、!=),并非说用>,>=,=,between……and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来,其实您只要理解好了这个rownum伪列的意义就不应该感到惊 奇,同样是伪列,rownum与rowid可有些不一样,下面以例子说明:   假设某个表t1(c1)有20条记录。   如果用select rownum,c1 from t1 where rownum < 10,只要是用小于号,查出来的结果很容易地与一般理解在概念上能达成一致,应该不会有任何疑问的。    可如果用select rownum,c1 from t1 where rownum > 10(如果写下这样的查询语句,这时候在您的头脑中应该是想得到表中后面10条记录),你就会发现,显示出来的结果要让您失望了,也许您还会怀疑是不谁删 了一些记录,然后查看记录数,仍然是20条啊?那问题是出在哪呢?    先好好理解rownum的意义吧。因为ROWNUM是对结果集加的一