linux如何添加数据库文件,为数据库添加控制文件

此文承接上一篇文章,由于对单个控制文件恢复后,数据库里只有一个控制文件,所以要为数据库添加控制文件。

1)在nomount状态修改spfile文件。由于数据库里只有一个控制文件control03.ctl

先将control03.ctl拷贝后重命名为control01.ctl ,control02.ctl ,

SQL> conn system/yang as sysdbaConnected to an idle instance.

SQL> startup nomount

ORACLE instance started.

Total System Global Area  535662592 bytes

Fixed Size                  1334380 bytes

Variable Size             138412948 bytes

Database Buffers          390070272 bytes

Redo Buffers                5844992 bytes

2)将控制文件添加到spfile文件里。

SQL> alter system set control_files=

2  'f:\app\yang\oradata\oracl\control01.ctl',

3  'f:\app\yang\oradata\oracl\control02.ctl',

4  'f:\app\yang\oradata\oracl\control03.ctl' scope=spfile;

System altered.

3)修改后应关闭数据库,重新启动到nomount状态时会用到修改过的spfile文件。SQL> shutdown immediate

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

Total System Global Area  535662592 bytes

Fixed Size                  1334380 bytes

Variable Size             138412948 bytes

Database Buffers          390070272 bytes

Redo Buffers                5844992 bytes

---出现没有料到的错误,不过重建过控制文件的话,ORA-00214  并不陌生。

ORA-00214: control file 'F:\APP\YANG\ORADATA\ORACL\CONTROL03.CTL' version 8281

inconsistent with file 'F:\APP\YANG\ORADATA\ORACL\CONTROL01.CTL' version 8279

--此错误说明CONTROL03.CTL'   比CONTROL01.CTL'的版本高,

SQL> shutdown immediate

ORA-01507: database not mounted

ORACLE instance shut down.4)重新拷贝CONTROL03.CTL 并将其重新命名CONTROL01.CTL 再试一下。

SQL> alter system set control_files=

2  'f:\app\yang\oradata\oracl\control01.ctl',

3  'f:\app\yang\oradata\oracl\control02.ctl',

4  'f:\app\yang\oradata\oracl\control03.ctl' scope=spfile;

System altered.

SQL> shutdown immediate

ORACLE instance shut down.

SQL> startup mount

ORA-32004: obsolete and/or deprecated parameter(s) specified

ORACLE instance started.

Total System Global Area  535662592 bytes

Fixed Size                  1334380 bytes

Variable Size             134218644 bytes

Database Buffers          394264576 bytes

Redo Buffers                5844992 bytes

ORA-00214: control file 'F:\APP\YANG\ORADATA\ORACL\CONTROL01.CTL' version 8295

inconsistent with file 'F:\APP\YANG\ORADATA\ORACL\CONTROL02.CTL' version 8279

--此错误说明CONTROL01.CTL'   比CONTROL02.CTL'的版本高,号码改变了,因为我实验的时候打开了数据库。关闭数据库再次修改,

SQL> shutdown immediate

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

Total System Global Area  535662592 bytes

Fixed Size                  1334380 bytes

Variable Size             134218644 bytes

Database Buffers          394264576 bytes

Redo Buffers                5844992 bytes

Database mounted.

SQL> select name from v$controlfile;

NAME

--------------------------------------------------------------------------------

F:\APP\YANG\ORADATA\ORACL\CONTROL01.CTL

F:\APP\YANG\ORADATA\ORACL\CONTROL02.CTL

F:\APP\YANG\ORADATA\ORACL\CONTROL03.CTL

这一次成功。。

不知道我的方法有什么不妥,希望各位拍砖。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用psql命令,将csv文件导入到PostgreSQL数据库,可以使用以下命令:\copy tablename from 'path/to/file.csv' delimiter ',' csv header; 例如:\copy users from '/tmp/users.csv' delimiter ',' csv header; 如果要将脚本自动化,可以使用shell脚本:#!/bin/bash psql -f /path/to/sql/script.sql ### 回答2: 要将CSV文件导入到PostgreSQL数据库,可以编写一个Linux脚本来实现。 首先,需要在Linux系统上安装PostgreSQL数据库,并确保已经创建好目标数据库。 然后,创建一个新的文本文件,可以使用vi或者其他文本编辑器,输入以下内容: ``` #!/bin/bash # 设置数据库信息 DB_HOST="localhost" DB_PORT="5432" DB_NAME="your_database_name" DB_USER="your_username" DB_PASSWORD="your_password" # 设置CSV文件路径 CSV_FILE="path/to/your/csv/file.csv" # 使用psql命令导入CSV文件数据库 psql -h $DB_HOST -p $DB_PORT -d $DB_NAME -U $DB_USER -c "\COPY your_table_name FROM '$CSV_FILE' DELIMITER ',' CSV HEADER;" ``` 将上述脚本保存为一个.sh文件,例如import_csv.sh。 接下来,进入命令行界面,导航到包含脚本文件的目录。运行以下命令将脚本文件设置为可执行: ``` chmod +x import_csv.sh ``` 然后,可以运行脚本文件来导入CSV文件到PostgreSQL数据库: ``` ./import_csv.sh ``` 脚本将会连接到指定的数据库,并将CSV文件导入到该数据库中的指定表格中。 需要确保替换脚本中的相关信息,例如数据库名称、用户名、密码、CSV文件路径和目标表格名称。此外,还可以根据需要进一步定制脚本。 希望以上回答对您有帮助! ### 回答3: 要将csv文件导入到postgresql数据库linux脚本,你可以使用以下步骤: 1. 首先,确认你已经安装了postgresql数据库和相关的命令行工具。如果没有,请先安装它们。 2. 创建一个新的数据库表,用来存储csv文件的数据。你可以使用以下命令在postgresql数据库中创建表: ``` CREATE TABLE table_name ( column1 datatype1, column2 datatype2, ... ); ``` 将table_name替换为你想要创建的表的名称,并为每列指定合适的数据类型。 3. 编写一个shell脚本来导入csv文件数据库。创建一个新的文件,比如import.sh,并添加以下内容: ``` #!/bin/bash psql -d database_name -c "\copy table_name FROM '/path/to/csv/file.csv' DELIMITER ',' CSV HEADER" ``` 将database_name替换为你要导入数据的数据库的名称,将table_name替换为你在第2步中创建的表的名称,将/path/to/csv/file.csv替换为你要导入的csv文件的路径。 4. 保存并关闭脚本文件。 5. 授予脚本文件执行权限。使用以下命令: ``` chmod +x import.sh ``` 6. 运行脚本文件。使用以下命令: ``` ./import.sh ``` 这将运行脚本并将csv文件的数据导入到postgresql数据库的表中。 请注意,以上步骤假设你已经正确安装了postgresql数据库和相关的命令行工具,以及已经正确配置了数据库的凭证和权限。如果这些条件不满足,你需要先解决这些问题才能顺利导入csv文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值