linux创建表空间
⑴ 如何用linux用命令创建ORACLE数据库表空间和用户
先su 到 oracle用户,SYS用户以DBA身份登陆
//创建临时表空间
sql>create temporary tablespace user_temp
datafile '/data1/oradata/user_temp.dbf'
size 5000M autoextend on;
//创建数据表空间
SQL>create tablespace user_temp
datafile '/data1/oradata/user_temp.dbf'
size 500M autoextend on;
(这些只是例子,具体数据文件的路径,大小,都要你自己改,这里的是不自动扩展,你如果想自动扩展,autoextend on next 50m maxsize 2048m,上网查一下就可以了)
//创建用户并指定表空间
SQL> create user username identified by password
default tablespace user_data
temporary tablespace user_temp;
//给用户授予权限
SQL> grant connect,resource to username;
⑵ 如何创建ORACLE大文件表空间
如何创建ORACLE大文件表空间
SQL>CREATE BIGFILE TABLESPACE 表名
datafile 'd:\ndo\ddo\表名.DBF‘
SIZE 500M AUTOEXTEND ON;
SQL>Create Bigfile tablespace bf_images_xp
datafile 'e:\datacenter\bf\bf_images_xp.dbf' size 500M Autoextend on;
//说明如下:
//创建一个大表空间,名称为:bf_images_xp,数据文件为e:\datacenter\bf\bf_images_xp.dbf
//初始化大小为500M,且文件自动增长
SQL>create bigfile tablespace bf_v_xp
datafile 'e:\datacenter\bf\bf_v_xp.dbf' size 500M autoextend on;
其中BIGFILE表示创建 的表空间是大文件表空间,
DATAFILE指定组成大文件表空间的大文件(上海硬盘数据恢复文件),
SIZE表示大文件的初始大小:
AUTOEXTED ON表示允许大文件自动扩张!
网友资料:供参考!
发现表空间文件容量与DB_BLOCK_SIZE有关,
在初始建库时,DB_BLOCK_SIZE要根据实际需要,
设置为4K,8K、16K、32K、64K等几种大小,
ORACLE的物理文件最大只允许4194304个块(由操作系统决定),
smallfile tablespace表空间文件的最大值为 4194304×DB_BLOCK_SIZE/1024M。
即:
4k最大表空间为:16384M=16G
8K最大表空间为:32768M=32G
16k最大表空间为:65536M=64G
32K最大表空间为:131072M=128G
64k最大表空间为:262144M=256G
//---------------------------------------------------------------------
oracle bigfile tablespace 大文件表空间 ----------------------------
Oracle 10g 新增的表空间类型:大文件 (Bigfile) 表空间。
大文件表空间从某种角度来说提高了 Oracle 在 VLDB 上的管理能力。
只有自动段空间管理的 LMT (Locally Managed Tablespaces ) 支持 BIGFILE 表空间。
大文件表空间只能包含一个文件,但是文件可以达到 4G 个数据块大小。
(以下用 BFT 指代 BIGFILE Tablespace。BFT 可以和以下存储技术结合使用:
自动存储管理(ASM) LVM OMF
理论上的 BFT 可以达到下面所列的值:
数据块大小(单位:K) BFT 最大值(单位:T)
2k 8T
4k 16T
8k 32T
16k 64T
32k 128T
在实际环境中,这还受到操作系统的文件系统的限制。
BFT基本操作
10g 数据库在创建的时候,会指定默认的表空间类型。
如果不特殊指定的话,默认为 SMALLFILE 类型的表空间。
SQL> SELECT * FROM database_properties WHERE property_name = 'DEFAULT_TBS_TYPE';
这种情况下,如果我们创建表空间的时候不指定类型,那么默认创建的都是 SMALLFILE 类型的表空间。
修改数据库默认的表空间类型
可以通过 ALTER DATABASE 命令来修改数据库默认的表空间类型:
SQL> ALTER DATABASE SET DEFAULT bigfile TABLESPACE;
Database altered.
SQL> SELECT * FROM database_properties WHERE property_name = 'DEFAULT_TBS_TYPE';
SQL>
SQL> 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 中有了什么变化:
SQL> desc DBA_TABLESPACES
SQL>
和 9i 相比,
DBA_TABLESPACES 视图多了两列:RETENTION 和 BIGFILE。
其中 BIGFILE 列说明该表空间是否为 BFT:
SQL> SELECT tablespace_name, bigfile FROM dba_tablespaces;
8 rows selected. V$TABLESPACE 视图相对 9i 也增加了新的列:
SQL> desc V$TABLESPACE Name
其中 FlASHBACK_ON 和 BIGFILE 列都是新增的。
BFT 属性
BFT有一些特有的属性。
1.每个表空间只能包含一个数据文件。如果试图添加新的文件,则会报告 ORA-32771 错误:
SQL> ALTER TABLESPACE bftbs
ADD DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M;
ALTER TABLESPACE bftbs * ERROR at line 1:
ORA-32771: cannot add file to bigfile tablespace
2.只有自动段空间管理的 LMT (locally managed tablespaces ) 支持 BFT
SQL> CREATE BIGFILE TABLESPACE bftbs02
DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M
EXTENT MANAGEMENT DICTIONARY;
CREATE BIGFILE TABLESPACE bftbs02 * ERROR at line 1:
ORA-12913: Cannot create dictionary managed tablespace
SQL> CREATE BIGFILE TABLESPACE bftbs02
DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M
SEGMENT SPACE MANAGEMENT MANUAL;
CREATE BIGFILE TABLESPACE bftbs02 * ERROR at line 1:
ORA-32772: BIGFILE is invalid option for this type of tablespace
3.相对文件号(RELATIVE_FNO)为1024 ( 4096 on OS/390)
因为BFT只有一个数据文件,所以其相对文件号也是固定的:1024
SQL> SELECT tablespace_name, file_id, relative_fno
FROM dba_data_files;
SQL>
4.rowid的变化
在 BFT 上存储的表的 ROWID 与 smallfile 表空间上的 rowid 结构有些不同的。
要正确得到 rowid 信息,dbms_rowid 包增加了一个新的参数ts_type_in来解决这个问题。
参考这个范例:
SQL> SELECT DBMS_ROWID.rowid_block_number (ROWID, 'BIGFILE')
FROM foo;
24
SQL>
你可以创建多大的表空间?
我们在前面提及,BFT 还受到操作系统的文件系统的限制。
下面我们以 Linux 操作系统为例:
SQL> SHOW parameters db_block_size
db_block_sizeinteger 8192
SQL>
也就是说,理论上我们可以创建最大 32T
⑶ oracle 在Linux怎么在指定的目录下建表空间
1、你的指定目录得有Oracle读写权限。
2、给你一个示例:
CREATE TABLESPACE test1 DATAFILE
'/home/oracle/database/test1_01.dbf' SIZE 50M REUSE AUTOEXTEND ON ;
⑷ 如何在Linux下创建oracle数据库的表空间和用户
先su 到 oracle用户,SYS用户以DBA身份登陆
//创建临时表空间
SQL>create temporary tablespace user_temp
datafile '/data1/oradata/user_temp.dbf'
size 5000M autoextend on;
//创建数据表空间
SQL>create tablespace user_temp
datafile '/data1/oradata/user_temp.dbf'
size 500M autoextend on;
(这些只是例子,具体数据文件的路径,大小,都要你自己改,这里的是不自动扩展,你如果想自动扩展,autoextend on next 50m maxsize 2048m,上网查一下就可以了)
//创建用户并指定表空间
SQL> create user username identified by password
default tablespace user_data
temporary tablespace user_temp;
//给用户授予权限
SQL> grant connect,resource to username;
⑸ linux怎么修改mysql数据库临时表空间大小
以MySQL 8.0 来说,通过查看 8.0 的官方文档得知,8.0 的临时表空间分为会话临时表空间和全局临时表空间,会话临时表空间存储用户创建的临时表和当 InnoDB 配置为磁盘内部临时表的存储引擎时由优化器创建的内部临时表,当会话断开连接时,其临时表空间将被截断并释放回池中;也就是说,在 8.0 中有一个专门的会话临时表空间,当会话被杀掉后,可以回收磁盘空间;而原来的 ibtmp1 是现在的全局临时表空间,存放的是对用户创建的临时表进行更改的回滚段,在 5.7 中 ibtmp1 存放的是用户创建的临时表和磁盘内部临时表;
也就是在 8.0 和 5.7 中 ibtmp1 的用途发生了变化,5.7 版本临时表的数据存放在 ibtmp1 中,在 8.0 版本中临时表的数据存放在会话临时表空间,如果临时表发生更改,更改的 undo 数据存放在 ibtmp1 中;
总结:在 mysql5.7 时,杀掉会话,临时表会释放,但是仅仅是在 ibtmp 文件里标记一下,空间是不会释放回操作系统的。如果要释放空间,需要重启数据库;在 mysql8.0 中可以通过杀掉会话来释放临时表空间。
⑹ 操作系统是linux,数据库是oracle,如何给表空间加一个数据文件,数据文件为10G,该怎么办
那几位不懂就别乱说了 楼主明显用的ASM ,而且已经把绝对路径之类的都告诉你了。你就直接把语句给他不就完了,
进入sqlplus后执行如下语句。
alter tablespace '名称' add datafile '+DATA/crmdb/datafile/kgdb_data1.dbf' size 10G;
或者在linux 系统下 oracle用户中直接执行如下语句。
echo 'alter tablespace '名称' add datafile '+DATA/crmdb/datafile/kgdb_data1.dbf' size 10G;'|sqlplus "/as sysdba"
⑺ Linux 下如何重新分配磁盘空间
1.
如果重新分配磁盘会破坏原先的文件系统,会丢失数据,如果要重新分配磁盘,必须做下数据备份和数据迁移。
2.
其实最简单一种方法就是做个nfs挂载到数据库的那个目录给数据库用。
3.
或者利用dd出一个文件给数据库用,具体操作如下:
假设我们需要512M的系统空间,我们就dd出一个512M的文件。
# dd if=/dev/zero of=/disk_file bs=1M count=512
将文件格式化成ext3文件系统。
# mkfs.ext3 /disk_file
手动挂载一下。
# mount -o loop /disk_file /db
加入到fstab中,方便以后开机自动挂载。
# grep disk_file /etc/fstab
/disk_file
/db
ext3
loop,default
0 0
# mount -a
查看空间使用状态
# df -Th | grep disk
/disk_file
ext3
496M
19M
452M
4% /db
⑻ linux oracle 一次最多创建多少个g的表空间
单个数据文件最大支持32G,表空间可以最N个数据文件组成。
⑼ 用友nc5.7 linux 中oracle创建表空间问题
只需另建一个用户即可,表空间可以共用,前提是这几个表空间空间在装下第一个帐套后还有足够的空间可以使用,不然要给不够的表空间增加数据文件来扩大表空间
⑽ linux系统中mysql数据库怎么查看表空间
linux系统进入mysql数据库的方法:
连接MYSQL:
格式: mysql -h主机地址 -u用户名 -p用户密码
1、连接到本机上的MYSQL。
首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>
2、连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123(注:u与root可以不用加空格,其它也一样)
3、退出MYSQL命令: exit (回车)
一个建库和建表以及插入数据的实例:
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key, //id设置为主关键字,并自动设值,也就是添加的时候,你不必向ID字段写内容
name char(10) not null,
address varchar(50) default '深圳', //设置默值为深圳
year date
); //建表结束
//以下为插入字段
insert into teacher values('','glchengang','建平一中','1976-10-10'); //ID不用写内容
insert into teacher values('','jack','建平一中','1975-12-23');