Helix Core is now P4. Product user interfaces will be updated soon. Learn more >>

P4 Server Administration Documentation | 2025.2

# Target server setup for the read-only replica

On the target server The immediately upstream server for replica servers, edge servers, standby servers, proxies and brokers. See also 'upstream server' and 'central server'., configure the read-only replica.

Open the server spec for the read-only replica server with ID readonly-1667:

    p4 -u super server readonly-1667

A default server spec appears. The replica in this example is named readonly-1667 because it will be configured to use port 1667.

## Prerequisite

The steps on this page assume you have logged into the target server as a P4 user with `super` access. This user can have any name, but for convenience the examples on this page use `super`:

`p4 -u super login`

To learn more about permission levels and access rights, see Permission levels and access rights in P4 CLI Reference.

## Spec configuration

On the target server (named london in this example), configure the server spec for the read-only replica by adding some configurables and setting their values. In this example, line 1 shows the ServerID is readonly-1667, and line 5 shows its Address as replica:1667, with the port number following the read-only replica host name of replica with a colon (:) separator.

Copy

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    ServerID:    readonly-1667
    Name:        readonly-1667
    Type:        server
    Services:    replica
    Address:    replica:1667
    DistributedConfig:
        db.replication=readonly
        lbr.replication=readonly
        lbr.autocompress=1
        startup.1=pull -i 1
        startup.2=pull -u -i 1
        startup.3=pull -u -i 1
        P4TARGET=london:1666
        serviceUser=service
        monitor=1 # optional but required if using the 'p4 monitor show' command
        journalPrefix=/p4/journals/read-only-replica # recommended
        P4TICKETS=/p4/.p4tickets # recommended
        P4LOG=/p4/logs/read-only-replica.log # recommended
    Description:
           Read-only replica pointing to london:1666

Regarding this configuration:

- For the optional fields, you can use your own naming conventions.
- For the Address field, see Communicating port information.
- The DistributedConfig: section might contain fields starting any#, such as:

  any#P4LOG=perforce.log

  any#serverlog.file.2=logs/commands.csv

  These are options configured on the target server that, by default, apply to any server for which it is a target server. To override such a configurable for the replica, add it before or after the fields containing any#

  For example:

  any#P4LOG=perforce.log

  any#serverlog.file.2=logs/commands.csv

  P4LOG=perforce.read-only.log

  serverlog.file.2=logs/my-subdirectory/commands.csv

## Service user creation

In replicated and multi-server environments, a service user is required. See p4 user in the P4 CLI Reference.

1. On the target server, create a service user named `serviceuser` for the replication service. For example:

       p4 -u super user -f serviceuser

   The default user specification opens in your default editor. To make this user be of type service, add the following line:

       Type: service

2. Consider creating a group for your service users. See Group for service users (recommended).

3. The ticket for a service user defaults to unlimited in 2025.2 and later. For 2025.1 and earlier: To prevent the service user logins from timing out, you can use the p4 group command to add the service user to a group with the Timeout field set to `unlimited`. See Tickets and timeouts for service users.

4. Set the access level for the service user or service user’s group to `super` in your protections table. See Access level for service users.

5. Set the level of security to 4 or higher on the target server. See Server security levels.
   For example,
   p4 -u super configure set security=4
6. Ensure that the user named serviceuser is protected with a strong password:
   p4 -u super passwd serviceuser

## Next step

Create the read-only replica

Your search for returned results