DB2 테이블 데이터 마이그레이션 db2 명령 db2 다운로드 db2 데이터베이스 소개 튜토리얼
시스템은 원격 데이터베이스를 사용합니다. 위치가 미국이라 연결속도가 엄청 느립니다. DBA는 데이터베이스를 안내하지 않습니다
데이터베이스 테이블 마이그레이션 방법을 직접 작성해야 했습니다. 하지만 한 번에 한 테이블씩 천천히 가져올 수 있습니다. PHP
<code><span><?php</span><span>//原数据库</span><span>$databaseOri</span> = <span>'原数据库名称'</span>; <span>$hostnameOri</span> = <span>'IP地址'</span>; <span>$portOri</span> = <span>'端口号'</span>; <span>$userOri</span> = <span>'用户名'</span>; <span>$passwordOri</span> = <span>'密码'</span>; <span>$csOri</span>=<span>"DATABASE=$databaseOri;HOSTNAME=$hostnameOri;PORT=$portOri;PROTOCOL=TCPIP;UID=$userOri;PWD=$passwordOri;"</span>; <span>$dbOri</span> = db2_connect (<span>$csOri</span>, <span>$userOri</span>, <span>$passwordOri</span>); <span>//目标数据库</span><span>$databaseDes</span> = <span>'要转移到的数据库的名称'</span>; <span>$hostnameDes</span> = <span>'IP地址'</span>; <span>$portDes</span> = <span>'端口号'</span>; <span>$userDes</span> = <span>'用户名'</span>; <span>$passwordDes</span> = <span>'密码'</span>; <span>$csDes</span>=<span>"DATABASE=$databaseDes;HOSTNAME=$hostnameDes;PORT=$portDes;PROTOCOL=TCPIP;UID=$userDes;PWD=$passwordDes;"</span>; <span>$dbDes</span> = db2_connect (<span>$csDes</span>, <span>$userDes</span>, <span>$passwordDes</span>); <span>//执行sql的方法</span><span><span>function</span><span>fetcher</span><span>(<span>$db</span>, <span>$query</span>,<span>$par</span> = array<span>()</span>)</span>{</span><span>$stmt</span> = db2_prepare(<span>$db</span>, <span>$query</span>); <span>$res</span>=<span>array</span>(); <span>if</span>(<span>$stmt</span>) { <span>//print_r($stmt);</span><span>$ex</span> = db2_execute(<span>$stmt</span>,<span>$par</span>); <span>if</span>(<span>$ex</span>) { <span>try</span>{ <span>while</span>(<span>$row</span> = db2_fetch_assoc(<span>$stmt</span>)) { array_push(<span>$res</span>, <span>$row</span>); } }<span>catch</span>(<span>Exception</span><span>$e</span>){} }<span>else</span>{ print_r(<span>$query</span>); } } <span>return</span><span>$res</span>; } <span>//插入数据库的方法</span><span><span>function</span><span>insertIntoDes</span><span>(<span>$db</span>, <span>$query</span>,<span>$par</span> = array<span>()</span>)</span>{</span><span>$stmt</span> = db2_prepare(<span>$db</span>, <span>$query</span>); <span>$res</span>=<span>array</span>(); <span>if</span>(<span>$stmt</span>) { <span>$ex</span> = db2_execute(<span>$stmt</span>,<span>$par</span>); <span>if</span>(!<span>$ex</span>){ print_r(<span>$query</span>); } } <span>return</span><span>$res</span>; } <span><span>function</span><span>transferDB</span><span>(<span>$tableName</span>,<span>$dbOri</span>,<span>$dbDes</span>)</span> {</span><span>//拼出要转移的table的所有字段名</span><span>$tableCloums</span> = fetcher( <span>$dbOri</span>, <span>"select NAME from sysibm.syscolumns where tbname='"</span>.<span>$tableName</span>.<span>"'"</span>, <span>array</span>() ); <span>$tableParams</span> = <span>""</span>; <span>$insertParamsLength</span> = count(<span>$tableCloums</span>); <span>for</span>(<span>$temp</span>=<span>0</span>;<span>$temp</span><<span>$insertParamsLength</span>;<span>$temp</span>++){ <span>$tmpName</span> = <span>$tableCloums</span>[<span>$temp</span>][<span>"NAME"</span>]; <span>$tableParams</span> = <span>$tableParams</span>.<span>$tmpName</span>; <span>//print_r($tableCloums[$temp]["NAME"]);</span><span>if</span>(<span>$temp</span> < <span>$insertParamsLength</span> - <span>1</span> ){ <span>$tableParams</span> = <span>$tableParams</span>.<span>","</span>; } } <span>//找出table的主键</span><span>$resultKeyArray</span> = fetcher( <span>$dbOri</span>, <span>"select NAME from sysibm.syscolumns where tbname='"</span>.<span>$tableName</span>.<span>"' and keyseq = '1'"</span>, <span>array</span>() ); <span>if</span>(<span>$resultKeyArray</span>[<span>0</span>][<span>"NAME"</span>]){ <span>$keyCloum</span> = <span>$resultKeyArray</span>[<span>0</span>][<span>"NAME"</span>]; }<span>else</span>{ <span>$keyCloum</span> = <span>"ID"</span>; } <span>//获取表的所有行数,因为如果表太大有几百万行的话,一下全导入到内存中会照成内存溢出</span><span>$count</span> = fetcher( <span>$dbOri</span>, <span>"select COUNT(*) from public."</span>.<span>$tableName</span>, <span>array</span>() ); <span>$dataCount</span> = <span>$count</span>[<span>0</span>][<span>1</span>]; <span>//确定要执行几次</span><span>$executeloops</span> = floor(<span>$dataCount</span> / <span>10000</span> + <span>1</span>); <span>//$executeloops = 1;</span><span>//循环执行</span><span>for</span>(<span>$i</span>=<span>0</span>;<span>$i</span><<span>$executeloops</span>;<span>$i</span>++){ <span>$pageIndex</span> = <span>$i</span>; <span>$beginIndex</span> = <span>$i</span>*<span>10000</span>; <span>$endIndex</span> = (<span>$i</span>+<span>1</span>) * <span>10000</span>; <span>//通过分页查询,每次从原表中获取1万条数据</span><span>$getDataFromOriTab</span> = <span>"select "</span>.<span>$tableParams</span>.<span>" from ( select ROW_NUMBER() OVER(ORDER BY "</span>.<span>$keyCloum</span>.<span>" DESC) AS ROWNUM, "</span>.<span>$tableParams</span>.<span>" from public."</span>.<span>$tableName</span>.<span>" ) a where ROWNUM > "</span>.<span>$beginIndex</span>.<span>" and ROWNUM <= "</span>.<span>$endIndex</span> ; <span>//fwrite($myfile, $getDataFromOriTab);</span><span>$tmpData</span> = fetcher(<span>$dbOri</span>,<span>$getDataFromOriTab</span>,<span>array</span>()); <span>//拼接出insert语句中字段的value的值</span><span>$valueStr</span> = <span>""</span>; <span>foreach</span>(<span>$tmpData</span><span>as</span><span>$index</span> => <span>$row</span>){ <span>$valueStr</span> = <span>""</span>; <span>foreach</span> (<span>$row</span><span>as</span><span>$cloumName</span> => <span>$value</span>) { <span>if</span>(<span>empty</span>(<span>$value</span>)){ <span>$valueStr</span> = <span>$valueStr</span> . <span>"'',"</span>; }<span>else</span><span>if</span> (is_null(<span>$value</span>)) { <span>$valueStr</span> = <span>$valueStr</span> . <span>"null,"</span>; }<span>else</span>{ <span>$valueStr</span> = <span>$valueStr</span> . <span>"$value,"</span>; } } <span>$valueStr</span> = substr(<span>$valueStr</span>, <span>0</span>, -<span>1</span>); <span>$insertSql</span> = <span>"INSERT INTO public."</span>.<span>$tableName</span>.<span>" ("</span>.<span>$tableParams</span>.<span>") VALUES ("</span>.<span>$valueStr</span>.<span>");"</span>; insertIntoDes(<span>$dbDes</span>,<span>$insertSql</span>,<span>array</span>()); } } } <span>//参数为要导的表的表名</span> transferDB(<span>"表名"</span>,<span>$dbOri</span>,<span>$dbDes</span>); <span>?></span></span></code>
위에서는 db2 및 마이그레이션 측면을 포함하여 DB2 테이블 데이터 마이그레이션을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제











1. 기존 기기에서 WeChat 앱을 열고 오른쪽 하단의 [나]를 클릭한 후 [설정] 기능을 선택한 후 [채팅]을 클릭하세요. 2. [채팅기록 이동 및 백업]을 선택하고, [이전]을 클릭한 후 장치를 이동하려는 플랫폼을 선택하세요. 3. [이전할 채팅 선택]을 클릭하거나, 좌측 하단의 [모두 선택]을 클릭하거나, 채팅 기록을 직접 선택하세요. 4. 선택한 후 오른쪽 하단의 [시작]을 클릭하여 새 기기를 사용하여 이 WeChat 계정에 로그인합니다. 5. 그런 다음 QR 코드를 스캔하여 채팅 기록 마이그레이션을 시작하세요. 사용자는 마이그레이션이 완료될 때까지 기다리면 됩니다.

Linux 및 Docker: 호스트 간에 컨테이너를 마이그레이션하고 동기화하는 방법은 무엇입니까? 요약: Docker는 경량 가상화 솔루션을 제공하는 인기 있는 컨테이너화 기술입니다. 다중 호스트 환경에서는 호스트 간에 컨테이너를 마이그레이션하고 동기화하는 것이 매우 일반적인 요구 사항입니다. 이 문서에서는 Linux 및 Docker를 사용하여 컨테이너 간 호스트 마이그레이션 및 동기화를 구현하는 방법을 소개하고 참조용 샘플 코드를 제공합니다. 소개 컨테이너화 기술의 등장으로 애플리케이션 배포 및 마이그레이션이 더욱 유연하고 효율적으로 이루어졌습니다. 여러 호스트에서

GitLab에서 프로젝트를 마이그레이션하고 통합하는 방법 소개: 소프트웨어 개발 프로세스에서 프로젝트 마이그레이션 및 통합은 중요한 작업입니다. 널리 사용되는 코드 호스팅 플랫폼인 GitLab은 프로젝트 마이그레이션 및 통합을 지원하는 일련의 편리한 도구와 기능을 제공합니다. 이 기사에서는 GitLab의 프로젝트 마이그레이션 및 통합을 위한 구체적인 단계를 소개하고 독자의 이해를 돕기 위해 몇 가지 코드 예제를 제공합니다. 1. 프로젝트 마이그레이션 프로젝트 마이그레이션은 기존 코드베이스를 소스코드 관리 시스템에서 GitLab으로 마이그레이션하는 것입니다.

db2와 oracle의 구문 차이점: 1. SQL 구문 차이점 db2와 oracle은 모두 구조화된 쿼리 언어를 사용하지만 구문에는 약간의 차이가 있습니다. 2. db2와 oracle은 서로 다른 데이터 유형을 갖습니다. 3. db2는 외래 키 제약 조건 정의를 사용할 수 있습니다. 테이블 생성 시 정의하거나 "ALTER TABLE" 문을 사용한 후 추가해야 합니다. 테이블 생성 시 Oracle을 함께 정의해야 합니다. 4. db2와 oracle 저장 프로시저 및 함수의 구문에도 약간의 차이가 있습니다.

1. 기존 단말기에서 "나" → "설정" → "채팅" → "채팅기록 이전 및 백업" → "이전"을 클릭하세요. 2. 마이그레이션할 대상 플랫폼 장치를 선택하고 마이그레이션할 채팅 기록을 선택한 후 "시작"을 클릭합니다. 3. 새 기기에서 동일한 WeChat 계정으로 로그인하고 QR 코드를 스캔하여 채팅 기록 마이그레이션을 시작하세요.

레거시 C++ 애플리케이션을 클라우드로 이동하는 가장 좋은 방법: 플랫폼 변경: 애플리케이션 코드를 클라우드 네이티브 플랫폼(예: Kubernetes)으로 마이그레이션하고 클라우드 서비스를 활용합니다. 클라우드화: 코드 리팩토링 없이 클라우드 플랫폼에 애플리케이션을 배포하고 클라우드 서비스를 활용합니다.

기존 기기에서 WeChat을 열고 '채팅 기록 마이그레이션 및 백업'을 선택한 후 안내에 따라 사용자는 채팅 기록을 새 기기로 마이그레이션할 수 있습니다. 마이그레이션 프로세스에는 마이그레이션해야 하는 채팅 선택, QR 코드 스캔 및 마이그레이션이 완료될 때까지 기다리는 작업이 포함됩니다.

기업 IT 시스템에서 서버 마이그레이션은 기업이 서버 활용도를 향상하고 비즈니스 요구 사항을 충족하며 하드웨어 장비를 업데이트하는 등의 작업을 수행하는 데 도움이 되는 일반적인 작업입니다. Linux 시스템의 서버 마이그레이션에는 특정 문제가 있지만 합리적인 계획과 구현을 통해 이 작업을 간단하고 효율적으로 수행할 수 있습니다. 아래에서는 Linux 시스템에서 서버 마이그레이션을 위한 몇 가지 주요 단계를 소개합니다. 준비 작업 서버 마이그레이션을 수행하기 전에 원본 서버와 대상 서버에서 몇 가지 준비가 필요합니다.
