数据库从其他存储系统迁移到ASM
ORACLE ASM(自动存储管理系统)是oracle官方提供的数据库文件存储管理系统,相对于其他文件存储系统而言,AMS在负载均衡、性能优化
Oracle ASM(自动存储管理系统)是oracle官方提供的数据库文件存储管理系统,相对于其他文件存储系统而言,AMS在负载均衡、性能优化和冗余保护方面具体较大的优势。目前ORACLE推荐数据库使用AMS来存储数据库相应的文件,而且11g RAC模式下只能用ASM管理存储或OCFS管理存储,已经不可以使用裸设备当共享存储。本实验是模拟数据库从普通文件系统(数据文件直接存储在操作系统上)迁移到ORACLE ASM存储上。
环境:
迁移涉及的磁盘组:
sys@+asm(asm.com)> create diskgroup fra external redundancy disk '/dev/asm*[n-s]';
sys@+asm(asm.com)> create diskgroup data external redundancy disk '/dev/asm*[b-m]';
迁移的数据库名称:szpms
一. 准备工作
1. 兼容性参数确认COMPATIBLE
,那么需要将所有的只读
表空间设置为读写表空间
SQL> show parameter compatible
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
compatible string 11.2.0.4.0
2. 如果数据库是物理备库,停止日志应用恢复
逻辑备库是主数据库的一份copy,作为容灾用的。通过下面命令停止日志应用恢复。
SQL> ALTER DATABASE RECOVERY MANAGED STANDBY DATABASE CANCEL;
保持这个终端窗口开启状态。
3. 复制spfile或者pfile到临时存储位置
$ cp spfileszpms.ora orig_spfileszpms.ora
4. 打开一个新的窗口,使用RMAN连接到目标数据库
$ rlwrap rman target /
5. 备份数据文件到ASM磁盘组
使用0级增量备份。0级备份与全库备份一样都备份了数据库里面所有被使用过的数据块,但是全库备份不能作为增量备份的起点。
备份脚本:
run
{
allocate channel dev1 device type disk;
allocate channel dev2 device type disk;
backup as copy incremental level 0 database format '+data' tag 'ora_asm_migration';
}
6. 确认是否开启BCT特性(可选)
如果开启了BCT特性(block change tracking),则可以做个1级增量备份一般后续恢复数据库
{
ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev2 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev3 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev4 DEVICE TYPE DISK;
BACKUP AS COPY
INCREMENTAL LEVEL 1
DATABASE FORAMT ‘+DATA’
TAG ‘ORA_ASM_MIGRATION’;
}
7. 如果数据库开启了归档模式,则使用下面命令归档下时下redo log
RMAN> SQL "ALTER SYSTEM ARCHIVE LOG CURRENT";
8. 如果数据库使用的spfile,则备份下spfile
RMAN> BACKUP AS BACKUPSET SPFILE;
9. 如果开启了BCT,则需要禁用下
SQL> select status, filename from v$block_change_tracking;
RMAN> SQL "ALTER DATABASE DISABLE BLOCK CHANGE TRACKING";
10. 如果flashback database开启的话,需先禁用并删除掉所有还原点
SQL> select FLASHBACK_ON from v$database;
RMAN> SQL "ALTER DATABASE FLASHBACK OFF";
RMAN> SQL "DROP RESTORE POINT Q106";
11. 关闭数据库(干净)
RMAN> SHUTDOWN IMMEDIATE;
推荐阅读:
如何修改ASM的sys密码
如何将ASM中的数据文件复制到操作系统中
Oracle 11g RAC ASM磁盘全部丢失后的恢复
Oracle 11g从入门到精通 PDF+光盘源代码
RHEL6 ASM方式安装Oracle 11g R2
Oracle 10g 手工创建ASM数据库
Ubuntu 12.04(amd64)安装完Oracle 11gR2后各种问题解决方法
如何修改Oracle 10g ASM的sys密码

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

Hibernate 다형성 매핑은 상속된 클래스를 데이터베이스에 매핑할 수 있으며 다음 매핑 유형을 제공합니다. Join-subclass: 상위 클래스의 모든 열을 포함하여 하위 클래스에 대한 별도의 테이블을 생성합니다. 클래스별 테이블: 하위 클래스별 열만 포함하는 하위 클래스에 대한 별도의 테이블을 만듭니다. Union-subclass: Joined-subclass와 유사하지만 상위 클래스 테이블이 모든 하위 클래스 열을 통합합니다.

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

PHP에서 데이터베이스 연결 오류를 처리하려면 다음 단계를 사용할 수 있습니다. mysqli_connect_errno()를 사용하여 오류 코드를 얻습니다. 오류 메시지를 얻으려면 mysqli_connect_error()를 사용하십시오. 이러한 오류 메시지를 캡처하고 기록하면 데이터베이스 연결 문제를 쉽게 식별하고 해결할 수 있어 애플리케이션이 원활하게 실행될 수 있습니다.

Golang의 데이터베이스 콜백 기능을 사용하면 다음을 달성할 수 있습니다. 지정된 데이터베이스 작업이 완료된 후 사용자 정의 코드를 실행합니다. 추가 코드를 작성하지 않고도 별도의 함수를 통해 사용자 정의 동작을 추가할 수 있습니다. 삽입, 업데이트, 삭제, 쿼리 작업에 콜백 함수를 사용할 수 있습니다. 콜백 함수를 사용하려면 sql.Exec, sql.QueryRow, sql.Query 함수를 사용해야 합니다.

JSON 데이터는 gjson 라이브러리 또는 json.Unmarshal 함수를 사용하여 MySQL 데이터베이스에 저장할 수 있습니다. gjson 라이브러리는 JSON 필드를 구문 분석하는 편리한 방법을 제공하며, json.Unmarshal 함수에는 JSON 데이터를 비정렬화하기 위한 대상 유형 포인터가 필요합니다. 두 방법 모두 SQL 문을 준비하고 삽입 작업을 수행하여 데이터를 데이터베이스에 유지해야 합니다.

Go 표준 라이브러리 데이터베이스/sql 패키지를 통해 MySQL, PostgreSQL 또는 SQLite와 같은 원격 데이터베이스에 연결할 수 있습니다. 데이터베이스 연결 정보가 포함된 연결 문자열을 생성합니다. sql.Open() 함수를 사용하여 데이터베이스 연결을 엽니다. SQL 쿼리 및 삽입 작업과 같은 데이터베이스 작업을 수행합니다. 리소스를 해제하기 위해 defer를 사용하여 데이터베이스 연결을 닫습니다.

PHP 데이터베이스 연결 가이드: MySQL: MySQLi 확장을 설치하고 연결(서버 이름, 사용자 이름, 비밀번호, dbname)을 만듭니다. PostgreSQL: PgSQL 확장을 설치하고 연결(호스트, DB 이름, 사용자, 비밀번호)을 생성합니다. Oracle: OracleOCI8 확장을 설치하고 연결(서버 이름, 사용자 이름, 비밀번호)을 만듭니다. 실제 사례: MySQL 데이터, PostgreSQL 쿼리, OracleOCI8 업데이트 기록을 얻습니다.
