문제

Oracle 또는 SQL Server 데이터베이스에 연결되는 ASP .NET 응용 프로그램이 있습니다. 설치 프로그램은 "복원 데이터베이스 ..."과 같은 SQL 명령을 사용하여 기존 SQL 서버에 새로운 데이터베이스를 설치하기 위해 개발되었습니다. "Restore Database ..."는 소스 제어하에 보관하는 ".BAK"파일을 복원합니다.

저는 Oracle을 처음 접했고 우리의 응용 프로그램은 최근 10G와 호환되도록 포팅되었습니다.

우리는 현재 "exp.exe"도구를 사용하여 ".dmp"파일을 생성 한 다음 "imp.exe"를 사용하여 개발자 상자로 가져오고 있습니다.

"Oracle Database Installer"를 어떻게 만들겠습니까?

스크립트 파일을 사용하여 데이터베이스를 작성한 다음 데이터베이스를 필수의 기본 데이터?

무대 뒤에서 "imp.exe"도구를 실행 하시겠습니까?

시스템 관리자에게 대상 서버를 선택할 수 있도록 클린 인터페이스를 제공해야합니까? 또는 ".dmp"파일 만 제공해야합니까? 모범 사례는 무엇입니까?

감사.

도움이 되었습니까?

해결책

문제는 - 고객이 Oracle에 대해 무엇을 알고 있습니까?

  • 아무것도 아님? 이 위치를 다시 생각해야 할 것입니다. 오라클은 매우 크고 복잡합니다. 고객이 아무것도 모른다고 가정하면 자습서를 제공하고 부적절한 도움을 줄 것입니다.

  • 최소한의 유능한가? 그들이 유능하다면, 그들은 스스로 임프를 실행하기에 충분히 알고 있습니다. 또한 SQL을 실행하는 스크립트를 실행하기에 충분히 알고 있습니다.

  • 실제 DBA? Oracle을 감당할 수있는 대부분의 조직은 실제 DBA를 감당할 수 있습니다. 실제 DBA는 많은 것들에 대처할 수 있습니다. 많은 손잡이가 필요하지 않습니다. 그들 중 일부는 상점 표준에 따라 스토리지 매개 변수를 할당하는 것을 좋아합니다.

합리적인 기본값이있는 스크립트를 제공해야합니다. 누군가가 모든 스토리지 매개 변수를 쉽게 찾을 수있는 방식으로 스크립트를 정의하고 필요한 경우 조정해야합니다.

초기 데이터는 내보내기/가져 오기 또는 스크립트를 통해일 수 있습니다. 나는 대본을 선호합니다.

다른 팁

나는 DBA, 개발자 및 건축가로서 양쪽 (소비자 및 제공 업체)에서 반복적으로 수행했습니다.

제공자로서, 저의 그랜드 업적 중 하나 (1996 년)는 최대 규모의 보험 회사 (수백만 달러)를 대상으로하는 상업 보험 청구 관리 소프트웨어 제품을위한 설치 CD를 설립 한 것이 었습니다. 이 설치 CD는 Oracle 7.2 RDBMS 엔진, Filenet Optical Storage System (종이 문서를 스캔하고 카탈로그링 된 이진 버전을 생성) 및 사용자 정의 클레임 처리 응용 프로그램 (VB 4.0), 모든 통합 및 실행 준비를 설치했습니다. 설치 프로세스의 일환으로 사용자는 Oracle 소프트웨어 설치를 건너 뛰거나 사용자 정의 할 수 있으며 사용자는 모든 주요 세부 사항 (데이터베이스, 스키마, 테이블 스페이스, 크기, 디스크 등)에서 데이터베이스 구성을 사용자 정의/재정의 할 수 있습니다.

또한 필요에 따라 클라이언트 사이트로 이동하는 것을 포함 하여이 제품의 현장 서비스를 제공했습니다. 나는 복제 할 수있는 상상할 수있는 모든 시나리오에서 문자 그대로 수백 번 설치 CD를 테스트했으며, 여행은 물론 전화를 걸어야하는 현장 실패는 없었습니다 (나는 4 번의 여행을했지만 사전 판매품을 위해 대신에).

보다 최근 (2007), 나는 Megacorp에서 내부 시스템에 대한 Oracle 10G 데이터베이스의 생성을 스크립팅했습니다. 생산에서 데이터베이스는 8TB로 크기가 높았으며, 대부분 데이터 볼륨이 높은 단일 트랜잭션 테이블의 경우. 테스트에서 데이터베이스의 크기는 약 1 TB 크기로 겸손한 서버로 크기가있었습니다. 개발 중에 데이터베이스의 크기는 약 100MB 크기로 랩톱에서 실행되었습니다. 정확히 동일한 스크립트가 세 가지 환경을 모두 생성했으며 약 5 분 안에 새로운 환경/기계를 처리하도록 확장 할 수있었습니다. 이 데이터베이스는 극도의 성능 튜닝과 관련이 있었으므로 모든 관련 특성을 사용자 정의하는 것이 절대적으로 중요했습니다.

보험 클레임 처리 제품으로 돌아가서 SQL Server 데이터베이스에서 Oracle 데이터베이스로 전환하기 위해 원래 고용되었다고 덧붙였습니다. 대부분의 잠재 고객이 SQL-Server 기반 제품을 전문적이고 심각한 솔루션으로 보지 않았기 때문에 이러한 전환은 비즈니스 필요성으로 확인되었습니다. 오늘날에는 일반적이지는 않지만 일반적으로 적용됩니다. 소프트웨어 제품은 대상 고객 (특히 엔터프라이즈 급 고객)이 선호하는 여러 데이터베이스 옵션을 수용 할 수 있다면 시장 침투 가능성이 높습니다.

마찬가지로, 설치 CD도 필수 요소로 간주되었습니다. 그러나 그 상황과 더 많은 사람들이 대부분의 "실제"DBA가 가져 오기 기반 데이터베이스 설치를 수락하지 않을 것이라고 밝혔다. DBA와 건축가로서, 나는 같은 이유로 분명히 그렇지 않을 것임을 알고 있습니다.

간단히 말해서 가져 오기 기반 데이터베이스 설치는 고객에게 결과 데이터베이스를 거의 제어 할 수 없습니다. 고객에게 불투명하여 그들이 한 일에 의문을 남깁니다. 그것은 고객이 자신이 할 수있는 조명이 거의없는 것을 행사하려는 노력을 소비하도록 강요합니다. 악명 높고 오류가 발생하기 쉽습니다 (Oracle 가져 오기는 소유권 및 권한 문제, 제약 문제 등으로 잘 알려져 있습니다). 이러한 모든 영향을 측정하면 수입 기반 데이터베이스 설치는 비전문가입니다. 고객의 요구를 최우선으로하지 않습니다.

데이터베이스 설치를 스크립팅하면 전문성이 요구하는 올바른 투명성, 구성 가능성, 선택적 반복성 및 전반적인 고객 제어가 제공됩니다. 또한 수입이하지 않는 방식으로 데이터베이스 설계 결정의 영향을 올바르게 이해하도록 권장합니다.

최고의 소원.

개인적으로 나는 데이터베이스 생성에 대한 SQL 스크립트를 선호하고 가능한 경우 데이터로드를 선호합니다. 나는 사용하는 경향이있다 PL/SQL 개발자. 기존 데이터베이스에서 스크립트를 생성 할 수있는 좋은 옵션이 있습니다. 이 경우 SQLPlus 또는 임의의 SQL (예 : JAVA가있는 JDBC)을 실행할 수있는 응용 프로그램 코드를 사용하여 스크립트를 실행할 수 있습니다. 두꺼비 Oracle 개발을위한 더 일반적인 (그리고 더 비싼) 도구입니다.

SQL 내보내기의 유일한 제한은 클로브/블로브 필드를 내보낼 수 없다는 것입니다. 당신이 그것들이 있다면, 당신은 그것들을 별도로 (PL/SQL 내보내기) 또는 PL/SQL 내보내기로 수행해야합니다. 파일은 사실상 이진 내보내기 (Extension .pde)라는 것을 제외하고는 이것으로 드라마가 없으며 실행 방법이 더 제한적입니다.

SQL 소스 파일의 또 다른 큰 장점은 버전을 쉽게 제어 할 수 있다는 것입니다. 하나 또는 두 개의 스크립트를 실행하여 데이터베이스 환경을 만들 수 있다는 것은 정말 편리합니다.

Oracle의 가져 오기 및 내보내기 도구는 백업 및 복원 작업에 더 적용 할 수 있다고 생각합니다.

이제 고객에게이를 전달하는 것에 관해서는 귀하의 의견에서 DBA에 이것을 제공 할 것 같습니다. 거의 모든 Oracle 설치에는 DBA가 포함됩니다. 스키마를 만들고 데이터로드를 수행하기 위해 SQL 스크립트가 적합합니다. 그들은 많은 사이트 별 구성을 수행 할 것입니다 (예 : 예상 부하를 기준으로 SGA, 임시 테이블 스페이스, 동시 연결 등을 조정).

공급 업체로서 귀하는 관련 구성에 대한 지침을 제공 할 수 있으며 지원 및 설치에 참여할 수 있지만 궁극적으로 그들에게 효과가있는 것을 파악하는 것은 그들에게 달려 있습니다. Oracle은 네트워크 토폴로지 및 방화벽 Configuraiton에서 무한 변형을 갖춘 다수의 운영 체제 및 하드웨어 변형에서 실행됩니다. 이 모든 것을 설치자 또는 일련의 지침 (앞에서 언급 한 지침 제외)에 고려할 수는 없습니다.

마지막으로 내가 (Oracle) DB (사내 DBA를 가진 합리적으로 대기업)의 창설에 관여했을 때 DBA는 다음과 같은 것을 알고 싶어했습니다.

  • 우리가 DB라고 부르고 싶은 것,
  • 우리가 필요한 테이블 스페이스와 각 데이터에 얼마나 많은 데이터가 있을지 추정
  • 얼마나 많은 사용자를 연결합니까?

(메모리에서) 그들은 DB와 테이블 스페이스를 설정 한 다음 실행할 수있는 간단한 스크립트의 조합을 제공했습니다 (또는 작업을 자동화하기가 쉽지 않은 경우 명확한 지침).
내가 말했듯이, 사내 앱을위한 것이 었으므로 마일리지는 다를 수 있지만, 제 경우에는 모든 지침이 명확하게 철자를 원했기 때문에 (a) 잘못된 일이 발생하고 잘못된 일을 이끌어내는 오해가 없었습니다. (b) 무언가가 효과가 없다면 그들의 부분에 대한 촉감이 없다 ( "우리는 지시를 따르고 있었다")

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top