跳至主要内容

Oracle学习笔记20071224

移动data files
tablespace类
首先需要将tablespace设置为offline,然后目标data files必须存在
然后使用:
SQL>ALTER TABLESPACE userdata RENAME DATAFILE '/u01/oradata/userdata01.dbf'
TO '/u01/oradata/userdata01.dbf';

database类
database必须mount,目标datafile必须存在
SQL>ALTER DATABASE RENAME FILE '/u01/oradata/system01.dbf'TO
'/u03/oradata/system01.dbf';

修改Tablespace的建立在Oracle的管理文件
SQL>ALTER SYSTEM SET db_create_file_dest = '/u01/oradata/db01';


关于表
从逻辑结构来说分为oracle,extent,segment,tablespace,database
物理测试datafile,OS blocks

segments的种类分为table,cluster,index,partition,index-organized table,index partition,undo segment,temporary segment,lob segment,nested table,bootstrap segment

DATABASE BLOCK最小的单位的I/O,由一个或多个OS blocks组成,由tablespace creation建立,db_block_size是默认大小
管理DATA BLOCK有两种方法,一种自动,一种手动。
自动语法:
SQL>CREATE TABLESPACE data02 DATAFILE '/u01oradata/data02.dbf' SIZE 5M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64K SEGMENT SPACE MANAGEMENT AUTO;

手动语法需要用到PCTFREE,PCTUSED,FREELIST这几个参数
例如,假设整个blockspace为100,那么set pctfree = 20,pctused =40,如果PCTUSED>80的话那么将不能插入,如果大于40的话则可以在插入。

Used extents对应的是dba_extents视图,Fredd extents对应的是dba_free_space,Segments对应的是dba_segments,Data Files对应的是dba_data_files,tablespace对应的是dba_tablespaces,

管理UNDO DATA
同样的对于UNDO DATA而言也是有两种方法的,一种自动,一种手动
undo这个术语有点像rollback
undo的类型
system类用的是system tablespace
non-system类用别的tablespace,自动模式需要一个undospace,非自动模式私有的需要单个实例,公共的任何实例
延迟的,当使用时把tablespace设置为offline immediate,temporary,或者recovery


自动undo管理的概念:
undo data管理应用的是undo tablespace
你为工作实例用一个用足够的空间undo tablespace分配给每个实例。
配置自动undo需要用的到参数是undo_managerment和undo_tablespace
undo_managerment参数:特别的,显示undo是自动还是手动
undo_tablespace参数:显示正在使用的undo名称

通过以下语句可以建立一个undo tablespace:
这句是在建立DATABASE时候一起建立的
SQL>CREATE DATABASE db01 . . . UNDO TABLESPACE undo1 DATAFILE 'undo1db01.dbf'
SIZE 20M AUTOEXTEND ON;

这句是在以后建立的
SQL>CREATE UNDO TABLESPACE undo1 DATAFILE 'undo1db01.dbf' SIZE 20M


自动模式下修改undo tablespace:
使用方法用alter tablespace语句
修改方式用下列语句:
SQL>ALTER TABLESPACE undotbs ADD DATAFILE 'undotbs2.dbf' SIZE 30M AUTOEXTEND
ON;

自动模式下更改undo tablespace
交换到另外一个undotablespace,只有一个能被交换的实力,允许多个undo tablespace存在于一个实例,但只能激活一个。使用一个:
SQL>ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2;

自动模式下删除undo tablespace
SQL>DROP TABLESPACE UNDOTBS2;

自动模式下其他的参数:
undo_supperss_errors 当为ture的时候将那些在手动处理的时候转会自动模式
undo_retention:Controls the amount of undo data to retain for
consistent read(翻译不出来)

查看undo data statistics
SQL>SELECT end_time,begin_time,undoblks FROM V$UNDOSTAT


在自动模式下修改undo tablespace的大小:
决定undo tablespace大小需要三个条件ur,ups,dbs
undospace=[ur*(ups*dbs)]+(dbs*24)

Undo Quota没有细研究,貌似E文都是概念性的东西

Undo下用到的视图为dba_rollback_segs,功能表达视图
V$ROLLNAME
V$ROLLSTAT
V$UNDOSTAT
V$SESSION
V$TRANSACTION

管理表~
Oracle中有很多datatype。详细的。。暂时不说
其次比较重要的rowid,rowid是唯一固定的,rowid的格式:
oooooofffbbbbbbrrr,oooooo是数据对象的号码fff是相对文件的数字bbbbbb是块号码rrr是行号码
restricted rowid format bbbbbbbbrrrrffff,bbbbbbbb是块号码rrrr是行码ffff是文件码

建表的语句是create table,建临时表create global temporary table

评论

此博客中的热门博文

4 steps to delete account in Gerrit DB

4 steps to delete account in DB. Delete from accounts where preferred_email=’’; delete from account_ssh_keys where account_id=''; delete from account_external_ids where external_id='gerrit:*’; delete from account_external_ids where external_id='username:*’; whatever it was in H2 database and postgres db . H2: ssh -p 24198 localhost gerrit gsql Postgres: psql

mod

apache安装后,如果想再添加模块,往往不想重新安装一次,再者,我在安装中发现,并不是安装文件中所有的modules都会被默认安装,即使在安装中使用了 ./configure --prefix=/usr/local/apache --enable-so --enable-modules=all --enable-mods-shared=all也是如此。我使用上述方法安装的apache2.2.6就没有安装proxy相关模块。这时,需要手工生成so文件,但会自动的被复制到你的apache安装目录的modules中,然后修改apache的配置文件,加载相关模块,验证apache配置并重启服务即可。以上描述的具体操作步骤如下: 操作系统:linux redhat 4.5 ES apache版本:2.2.6 可自行下载tar包 1. 拷贝安装包到/usr/local,并在目标目录下进行解压。[root@localhost local]# cd /usr/local[root@localhost local]# tar -zxvf httpd-2.2.4.tar.gz2. 配置安装参数,安装的目标目录为/usr/local/apache,建议设置enable-mods-shared=all,不用的module注释掉就行了![root@localhost local]# cd httpd-2.2.4[root@localhost httpd-2.2.4]# ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=all3. 编译并安装。[root@localhost httpd-2.2.4]# make[root@localhost httpd-2.2.4]# make install4. 启动Apache,并测试。[root@localhost httpd-2.2.4]# cd /usr/local/apache/bin[root@localhost bin]# ./apachectl start 打开浏览器,并在地址栏中输入主机的IP地址如 http://192.168.1.254/ 如果出现以下画面则说明安装成功。It works! 注意:安装完成后检查系统服务中的HTTPD服务是否已