Oracle初识笔记(一)

来源:互联网 发布:数据加密 ipguard 编辑:程序博客网 时间:2024/05/21 21:45

初识Oracle数据库,学习中的一些笔记及所遇问题。

一、远程数据备份:

cmd:exp 用户名/密码@要连接的远程计算机IP(:端口)/要备份的远程数据库名称 file=文件路径
例:exp username/password@192.168.0.99:1521/orcl file=f:\file1.dmp log=f:file1.log

二、将备份数据导入本地oracle(还原数据库):

  1. cmd进入sqlplus或者打开sqlplus,登录数据库:
    C:\Documents and Settings\Administrator>sqlplus /nolog
    SQL> connect / as sysdba
    已连接。
  2. 重启oracle服务:
    关闭:SQL>shutdown abort
    启动:startup
  3. 删除用户和表空间(已存在的话):drop user lsjt cascade;
    drop tablespace “EAS_D_STANDARD” including contents and datafiles;
    drop tablespace “EAS_D_TEMP2” including contents and datafiles;
    drop tablespace “EAS_T_STANDARD” including contents and datafiles;
  4. 创建用户,设置密码:
    create user lsjt identified by lsjt;
  5. 创建表空间:create tablespace “EAS_D_STANDARD” datafile ‘F:\oradata\EAS_D_STANDARD.dbf’ size 1024M autoextend on next 500M maxsize 5000M;(autoextend on:自动增长,每次500M最大5000M,maxsize unlimite:最大无限制 )
    create tablespace “EAS_D_TEMP2” datafile ‘F:\oradata\EAS_D_LSJT5_TEMP.dbf’ size 200M autoextend on;
    create temporary tablespace “EAS_T_STANDARD” tempfile ‘F:\oradata\EAS_T_LSJT_STANDARD.dbf’ size 500M autoextend on;
  6. 设置临时表空间和默认表空间:alter user lsjt default tablespace “EAS_D_STANDARD” Quota unlimited on “EAS_D_STANDARD”;
    alter user lsjt temporary tablespace “EAS_T_STANDARD”;
  7. 赋予用户权限:grant dba to lsjt;
  8. 通过命令行将数据导入本地:imp system/password fromuser=lsjt touser=lsjt file=F:\file1.dmp log=F:\file1.log
记一次导入数据的大困扰:
  1. 首先使用命令:create tablespace “EAS_D_STANDARD” datafile ‘F:\oradata\EAS_D_STANDARD.dbf’ size 1024M;
    导入结束后发现大量表无数据,查看日志发现导入时报错,经过查找发现是表空间不足,未开启表空间自增。
  2. 将表空间设置为自增:
    ALTER DATABASE DATAFILE ‘F:\oradata\EAS_D_LSJT_STANDARD.dbf’ AUTOEXTEND ON;//打开自动增长
    ALTER DATABASE DATAFILE ‘F:\oradata\EAS_D_LSJT_STANDARD.dbf’ AUTOEXTEND ON NEXT 200M ;//每次自动增长200m
    ALTER DATABASE DATAFILE ‘F:\oradata\EAS_D_LSJT_STANDARD.dbf’ AUTOEXTEND ON NEXT 200M MAXSIZE 1024M;//每次自动增长200m,数据表最大不超过1G
    也可以在创建是设置自增:
    create tablespace “EAS_D_STANDARD” datafile ‘F:\oradata\EAS_D_STANDARD.dbf’ size 8000M autoextend on maxsize unlimited;
  3. 然而在设置完之后导入仍然失败,还是同样的报错。在经历长时间的请教查找资料之后终于懂了其中的问题所在:在windows系统中,Oracle表空间中的数据文件最大为32G,即使表空间设置了无限自增,当数据文件达到32G的顶峰时仍然会导入失败。解决方法就是多创建数据文件。
    alter tablespace “EAS_D_STANDARD” add datafile ‘F:\oradata\EAS_D_STANDARD2.dbf’ size 8000m;
    alter tablespace “EAS_D_STANDARD” add datafile ‘F:\oradata\EAS_D_STANDARD3.dbf’ size 8000m;

三、sqlplus基础命令:

  1. show,desc(describle)显示数据字典等。
    show user:显示用户;desc dba_users

  2. 查看表空间:
    desc dba_tablespaces,desc dba_users(系统管理员籍用户sys、system)
    desc user_tablespaces,desc user_users(普通用户)

  3. 查看、设置用户的默认/临时表空间:
    select default_tablespace from dba_users where username=’system’;
    设置:alter user xxx default/temporary tablespace xxx;xxx为表名
  4. 创建表空间:
    creat tablespace xxx datafile ‘xxx.dbf’ size 10M;10M为表空间的大小,自定义,可设置为自动扩展模式,后加autoextend on
  5. 删除表空间:
    drop tablespace xxx(including contens);加上including contens表示同时删除空间内的数据文件等。
  6. 表空间内增加数据文件:
    alter tablespace xxx add datafile ‘xxx.dbf’ size 10M;
  7. 查看表空间内的数据文件:
    select file_name from dba_data_files where tablespace_name = ‘xxx’;
  8. 删除数据文件:
    alter tablespace xxx drop datafile ‘xxx.dbf’;
  9. 设置联机/脱机/只读/可读写 状态:
    alter tablespace xxx online/offline/read only/ read write;
  10. 查看表空间状态;
    select status from dba_tablespace where tablespace_name=xxx;
  11. 创建表:
    creat table xxx(字段名 数据类型,字段名 数据类型…);
    creat table user(id number(6,0),username varchar2(20),password varchar2(20));
  12. 修改表(修改表结构非表数据):
    添加字段:alter table xxx add 字段名 数据类型;
    修改字段名:alter table xxx rename column 原字段名 to 新字段名;
    删除字段:alter table xxx drop column xxx;
    修改表名:rename xxx to xxx;
  13. 删除表:
    truncate table xxx;(仅删除数据)
    drop table xxx;(删除所有,包括表、数据)
  14. 添加数据:
    insert into xxx (字段名,字段名,…) values (xxx,xxx…);
    sysdate:获取当前日期
  15. 修改表数据:
    update xxx set 字段=xxx,字段=xxx…where 条件;
  16. 删除表数据:
    delete from xxx where 条件;
    truncate table xxx;截断表
  17. 复制表数据:
    创建表时复制:create table xxx as select 字段名,字段名…from xxx;
    添加数据时复制:insert into xxx (字段,字段,…) select 字段名,字段名…from xxx;
原创粉丝点击