Oracle数据库(不定时补充)

Oracle数据库

一、数据库

1、创建数据库

 create database databasename

2、删除数据库

 drop database dbname

3、备份数据库

完全备份
exp demo/demo@orcl buffer=1024 file=d:\back.dmp full=y

 demo:用户名、密码

 buffer: 缓存大小

 file: 具体的备份文件地址

 full: 是否导出全部文件

 ignore: 忽略错误,如果表已经存在,则也是覆盖

将数据库中system用户与sys用户的表导出
exp demo/demo@orcl file=d:\backup\1.dmp owner=(system,sys)

导出指定的表
exp demo/demo@orcl file=d:\backup2.dmp tables=(teachers,students)

按过滤条件,导出
exp demo/demo@orcl file=d:\back.dmp tables=(table1) query=" where filed1 like ‘fg%’"

 导出时可以进行压缩;命令后面 加上 compress=y ;如果需要日志,后面: log=d:\log.txt

备份远程服务器的数据库
exp 用户名/密码@远程的IP:端口/实例 file=存放的位置:\文件名称.dmp full=y

4、数据库还原

 打开cmd直接执行如下命令,不用再登陆sqlplus。

完整还原
imp demo/demo@orcl file=d:\back.dmp full=y ignore=y log=D:\implog.txt

 指定log很重要,便于分析错误进行补救。

导入指定表
imp demo/demo@orcl file=d:\backup2.dmp tables=(teachers,students)

还原到远程服务器
imp 用户名/密码@远程的IP:端口/实例 file=存放的位置:\文件名称.dmp full=y

实例的创建

表空间

1、表空间概述与默认表空间

重点内容表空间有三种:小文件表空间(默认)、大文件表空间、临时表空间。

默认表空间表示,当建表,建索引等的时候,如果不指定表放在哪里,那么自动放在该用户的默认表空间(创建一个用户的时候需要指定他的默认表空间)。这就印证了:一个用户可以使用一个或多个表空间,一个表空间也可以供多个用户使用。

Oracle11g数据库存在6个默认表空间:EXAMPLE、SYSAUX、SYSTEM、TEMP、UNDOTBS1、USERS。其中:

  EXAMPLE表空间:用于安装Oracle 11g数据库使用示例数据库。
  SYSAUX表空间:作为EXAMPLE表空间的辅助表空间。
  SYSTEM表空间:用来存储SYS用户的表、视图、、存储过程等数据库对象。
  TEMP表空间:临时表空间,用户SQL语句处理的表和索引信息。
  UNDOTBS1表空间:用于存储撤销信息。
  USERS表空间:存储数据库用户创建的数据库对象。

2、查看所有用户的默认表空间

通过数据库字典DBA_TABLESPACES查看所有默认表空间。

select * from dba_tablespaces

3、查看指定用户默认表空间

通过数据库字典DBA_USERS查看指定用户的默认表空间。

select * from dba_users

表空间管理

表空间管理的四种情况:创建、修改、删除、扩容。

1、创建表空间

​ 创建表空间的一般语法:
​ (语法符号解析:中括号[]表示可有可无,竖线 | 表示或者, 大括号{ }表示必须要有的)

CREATE TABLESPACE tablespace_name
DATAFILE 'filename'  SIZE size 
[AUTOEXTEND  [OFF|ON NEXT size] ]  
[MAXSIZE size]
[PERMANENT|TEMPORARY]
[EXTENT MANAGEMENT 
	[DICTIONARY|LOCAL
		[AUTOALLLOCATE|UNIFORM.[SIZE integer[K|M]]]
    ]
 ]

【语法说明】
TABLESPACE :指定要创建表空间的名称
DATAFILE:指定表空间的数据文件名称,还要指定文件的路径。
AUTOEXTEND :指定表空间数据文件的自动扩展方式。ON表示自动扩展,OFF表示非自动扩展。如果使用自动扩展应该在NEXT关键字后指定具体大小。
MAXSIZE : 指定数据文件自动扩展方式时的最大值。
PERMANENT|TEMPORARY :指定表空间的类型,PERMANENT表示永久表空间;TEMPORARY表示临时表空间。
EXTENT MANAGEMENT :指定表空间的管理方式,DICTIONARY表示字典管理方式,LOCAL表示本地管理方式。(默认使用本地管理方式,也是推荐使用的)

示例:

CREATE TABLESPACE testone
DATAFILE 'testone.dbf'  SIZE 10M 
AUTOEXTEND  ON NEXT 128k
MAXSIZE 2048M

2、重命名表空间

​ 重命名表空间语法:

ALTER TABLESPACE old_name to new_name

【说明】
*不是所有的表空间的都可以重命名,YSYTEM、SYSAUX就不能,处于OFFLINE状态的表空间也不能重命名。
*要重命名表空间的前提是,表空间存在,可以在数据字典中查看表空间的名字在进行操作。

示例:

ALTER TABLESPACE testone to testonenew

3、设置大文件表空间

设置大文件表空间是在正常表空间不足够使用的时候才创建。
​ 设置大文件表空间的语法:

CREATE BIGFILE TABLESPACE tablespace_name  DATAFILE filename SIZE size

【语法说明】
tablespace :表空间
filename :设置大文件名
SIZE:设置大文件的大小

示例:

CREATE BIGFILE TABLESPACE testbigfile DATAFILE 'bigfiletest.dbf' SIZE 2G

4、删除表空间

删除表空间的时候可以选择将表空间的文件和完整性一起删除。
​ 删除表空间的语法:

DROP TABLESPACE tablespace_name [INCLUDING CONTENTS]  [CASCADE CONSTRAINTS]

【语法说明】

  1. INCLUDING CONTENTS: 包含数据文件
  2. CASCADE CONSTRAINTS : 包含表空间完整性

示例:

DROP TABLESPACE testone INCLUDING CONTENTS

5 、扩容表空间

  1. 给表空间增加数据文件

    ALTER TABLESPACE app_data ADD DATAFILE  
    'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;  
    
  2. 新增数据文件,并且允许数据文件自动增长

    ALTER TABLESPACE app_data ADD DATAFILE
    'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M
    AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
    
  3. 允许已存在的数据文件自动增长

    ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF'  
    AUTOEXTEND ON NEXT 5M MAXSIZE 100M;  
    
  4. 手工改变已存在数据文件的大小

    ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF'  
    RESIZE 100M;
    

    临时表空间管理

    ​ Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。
    ​ 重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长。直到耗尽硬盘空间。
    ​ 存放临时数据(一般是排序结果),数据库存储数据,当内存不够时存入临时表空间,当执行完数据库操作后,自动清空。


用户

1、创建用户

CREATE USER OT IDENTIFIED BY Orcl1234;
说明:CREATE USER 表名 IDENTIFIED BY 密码;

2、查询当前用户下的表

 SELECT table_name FROM user_tables ORDER BY Table_name
 说明:从user_tables表中选择了table_name列中的值,并按字母顺序排列了表名

权限

表操作

1、创建表

 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
 根据已有的表创建新表:
 A:select * into table_new from table_old (使用旧表创建新表)
 B:create table tab_new as select col1,col2… from tab_old definition only<仅适用于Oracle>

2、删除表

 drop table tabname

3、重命名表

 说明:alter table 表名 rename to 新表名
    eg:alter table tablename rename to newtablename

4、增加字段

 说明:alter table 表名 add (字段名 字段类型 默认值 是否为空);
    例:alter table tablename add (ID int);
   eg:alter table tablename add (ID varchar2(30) default '空' not null);

5、修改字段

 说明:alter table 表名 modify (字段名 字段类型 默认值 是否为空);
    eg:alter table tablename modify (ID number(4));

6、重名字段

 说明:alter table 表名 rename column 列名 to 新列名 (其中:column是关键字)
    eg:alter table tablename rename column ID to newID;

7、删除字段

 说明:alter table 表名 drop column 字段名;
    eg:alter table tablename drop column ID;

8、添加主键

 alter table tabname add primary key(col)

9、 删除主键

 alter table tabname drop primary key(col)

10、创建索引

 create [unique] index idxname on tabname(col….)

11、删除索引

 drop index idxname

 注:索引是不可更改的,想更改必须删除重新建。

12、创建视图

 create view viewname as select statement

13、删除视图

 drop view viewname

表数据操作

PL/SQL编程

1、变量定义

2、流程控制

2.1 if判断

2.2循环

10、创建索引

 create [unique] index idxname on tabname(col….)

11、删除索引

 drop index idxname

 注:索引是不可更改的,想更改必须删除重新建。

12、创建视图

 create view viewname as select statement

13、删除视图

 drop view viewname

表数据操作

PL/SQL编程

1、变量定义

2、流程控制

2.1 if判断

2.2循环

3、游标

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以为Oracle数据库设置定时重启。具体方法如下: 1. 登录Oracle数据库。 2. 在Oracle数据库中创建一个脚本文件,用于重启数据库。例如,可以创建一个名为restart_db.sh的脚本文件,包含以下内容: #!/bin/bash echo "Restarting Oracle database..." export ORACLE_SID=your_oracle_sid export ORACLE_HOME=your_oracle_home $ORACLE_HOME/bin/sqlplus "/ as sysdba" << EOF shutdown immediate; startup; EOF 3. 使用crontab设置定时任务,执行restart_db.sh脚本文件。例如,可以在crontab文件中添加以下内容,表示每天凌晨2点重启数据库: 0 2 * * * /path/to/restart_db.sh 其中,/path/to/restart_db.sh是restart_db.sh脚本文件的路径。 注意,执行该操作可能会中断正在进行的数据库操作,请确保在定时任务之前备份数据库。 ### 回答2: 要在Oracle数据库中设置定时重启,可以通过使用Oracle的作业调度器(Job Scheduler)来实现。作业调度器是Oracle中用于管理和调度作业的内置功能。 首先,我们需要创建一个新的作业(Job),并指定该作业的执行时间和频率。可以使用以下命令创建作业: BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'job_name', job_type => 'PLSQL_BLOCK', job_action => 'BEGIN -- 在这里放置要执行的代码 END;', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=DAILY; INTERVAL=1', -- 这里的例子是每天重启一次 enabled => TRUE); END; 上述命令将创建一个每天重启数据库的作业。我们可以根据需要调整重启的频率和时间。 接下来,我们需要启动作业调度器,让它开始工作。可以使用以下命令启动作业调度器: BEGIN DBMS_SCHEDULER.START_SCHEDULER; END; 现在,作业调度器将按照我们设置的时间和频率自动重启数据库。 如果需要修改已经创建的作业,可以使用以下命令: BEGIN DBMS_SCHEDULER.SET_ATTRIBUTE ( name => 'job_name', attribute => 'repeat_interval', value => 'FREQ=DAILY; INTERVAL=1'); END; 上述命令将修改作业的重启频率为每天一次。 最后,如果需要停止作业调度器,可以使用以下命令: BEGIN DBMS_SCHEDULER.STOP_SCHEDULER; END; 以上就是如何在Oracle数据库中设置定时重启的简要步骤。使用作业调度器可以方便地管理和调度各种数据库作业,包括定时重启。 ### 回答3: 要在Oracle数据库中设置定时重启,可以按照以下步骤进行操作。 1. 首先,确保系统中安装了cron或者其他定时任务管理工具。这些工具可以用于在特定时间执行特定的命令。 2. 打开终端或者命令提示符窗口,登录到Oracle数据库的服务器。 3. 使用root或者具有管理员权限的用户登录到数据库服务器。 4. 创建一个Shell脚本文件来执行重启数据库的操作。在终端或者命令提示符窗口中输入以下命令: ```shell vi restart_oracle.sh ``` 5. 在编辑器中,输入以下命令来重启数据库: ```shell #!/bin/bash export ORACLE_SID=<数据库实例名> export ORACLE_HOME=<数据库安装目录> $ORACLE_HOME/bin/sqlplus / as sysdba << EOF shutdown immediate; startup; exit; EOF ``` 将<数据库实例名>和<数据库安装目录>替换为实际的数据库实例名和安装目录。 6. 保存并关闭文件。确保Shell脚本文件有可执行权限。 7. 打开终端或者命令提示符窗口,输入以下命令来编辑cron表达式: ```shell crontab -e ``` 8. 在编辑器中,添加以下行来设置定时重启的时间。例如,以下表达式将在每天凌晨3点执行重启操作: ```shell 0 3 * * * /path/to/restart_oracle.sh ``` 将/path/to/restart_oracle.sh替换为实际的Shell脚本文件路径。 9. 保存并关闭文件。cron将根据设置的时间自动执行重启操作。 请注意,在执行以上步骤前,确保已做好数据库备份,并在实际操作中小心谨慎。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值